Server idiosyncracies --#-- Netscape can be a little cranky to deal with some times. To see just how cranky, let's go to www.dilbert.com and post to a script there.

Catbert, the evil HR Director, has a three-question quiz to see if you're worthy of promotion. Looking at the form in the page source, you'll see that your POST needs to send three values, plus a hidden field named "qindex." I'm not sure what the hidden field does, but I'm passing it anyway.

POST /comics/dilbert/career/bin/quiz.cgi HTTP/1.0 Content-type: application/x-www-form-urlencoded Content-length: 23 qindex=4&q1=1&q2=4&q3=5
You should get back lengthy HTML string, which is the page with Catbert's (probably insulting) memo. But what happens if you leave out the Content-type: header? An Apache server will probably handle such a request OK. But Netscape responds:

HTTP/1.1 200 OK Server: Netscape-Enterprise/3.5.1G Date: Fri, 01 Oct 1999 02:03:49 GMT Cgi-lib.pl: Unknown Content-type: Content-type: text/html cgi-lib.pl: Unknown Content-type:

cgi-lib.pl: Unknown Content-type:


Note, first of all, on the first line of the server response, that Netscape is using HTTP 1.1. But also, Netscape is very particular about content-type. It wants to know.

What does Internet Information Server do? Find out for yourself. A good place to find sites running specific servers is www.netcraft.com. Find a site with an innocuous HTML form and try posting against it and varying the headers you send. But before you do, you might want to learn how to build a simple little Web browser that can automate some of the tests we're running.

Also coming up: your own home-rolled Web server that can show you how the major browser makers formulate THEIR request headers.