HTTP/1.1 vs HTTP/1.0 servers
I am wondering what should be done about this. The new wwwlib library
sends by default the request as HTTP/1.1, and it seems that existing
servers and gateways have been coded rather strictly for 1.0 and
requests fail in various ways (see NCSA 1.5.2 or somesuch).
Now I run into another, a gateway to some database
Trying 188.8.131.52 ...
Connected to hyperg.obg.ed.ac.uk.
Escape character is '^]'.
GET /home;sk=17062E7B HTTP/1.1
HTTP/1.0 400 Wrong Protocol
<HEAD><TITLE>Hyper-G W3 Gateway V 2.51: Error</TITLE></HEAD>
The request was 'GET /home;sk=17062E7B HTTP/1.1
Connection closed by foreign host.
Which is in error? Is the server required to reply with HTTP/1.0, if it
doesn't recognize the HTTP/x.x?
HTTP/1.0 spec takes great care to specify backwards compatibility, but
seems to fail in specifying "forward compatibility". Does it state
anywhere what a server should do if the request is for HTTP/x.y, where
x.y is higher than servers version?
The section 3.1 (HTTP Version) of the HTTP 1.0 only spells out
requirements for the servers as
HTTP/1.0 servers must:
- recognize the format of the Request-Line for HTTP/0.9 and
- understand any valid request in the format of HTTP/0.9 or
- respond appropriately with a message in the same protocol
version used by the client.
The last point seems actually wrong, in case of request HTTP/x.y being
higher than servers version, the reply should include servers version,
not the clients version. Perhaps the correct formatting should have
- reply with version which ever is the lower from server and
Perhaps HTTP/1.1 and later will get this right. For now it seems that
we are stuck with the fact that when client asks HTTP/1.1, some
servers refuse to give back anything?
Markku Savela (email@example.com), Technical Research Centre of Finland
Multimedia Systems, P.O.Box 1203,FIN-02044 VTT,http://www.vtt.fi/tte/staff/msa/