views:

325

answers:

6

Say one is to write an HTTP server/client, how important is it to support HTTP/1.0? Is it still used anywhere nowdays?

Edit: I'm less concerned with the usefullness/importance of HTTP/1.0, rather the amount of software that actually uses it for non-internal (unit testing being internal use, for example) purposes in the real world (browsers, robots, smartphones/stupidphones, etc...).

+5  A: 

I use it all the time when I'm telnet-ing to a server to verify connectivity or figure out why it's not working:

$ telnet 192.168.1.1 80
GET / HTTP/1.0\r\n
\r\n

... 

(Because making a 1.0 request doesn't require that I provide any extra headers).

Seth
Note that this won't work on any virtual hosts; and it's not hard to do an HTTP 1.1 connection, just add a single `Host:` header and you're all set.
Brian Campbell
A: 

I'm guessing that pretty much everything uses 1.1 nowadays. Your answer depends on how important back-compat is for your project or target users.

Aquatoad
your guess is wrong, lots of mobile applications on phones don't support 1.1 just as an example.
fuzzy lollipop
+3  A: 

HTTP/1.0 is very important in writing very basic clients that don't need the overhead of all the 1.1 things like pipelining and other complicated things required by 1.1. Post a request get a response and disconnect is very easy to code for. This might be useful in writing test cases for your server that just want to test the application functionality and NOT the HTTP protocol implementation.

fuzzy lollipop
+1  A: 

wget uses HTTP/1.0, and it is still relatively popular (though it does support a few HTTP/1.1 features like the Host: header, which is necessary for access any virtual hosts).

Brian Campbell
A: 

IME its been a very long time since I've seen a true HTTP/1.0 reuqest. (including mobile devices fuzzylollipop).

I say a true request as MSIE still (pretends) to downgrade to HTTP/1.0 by default (unless yo sig in the config) when you connect via a proxy (all the outgoing requests are flagged as HTTP/1.0) - however it still includes HTTP/1.1 specific request headers and respects all the HTTP/1.1 responses.

Curiously, IIS, in a mirror image, happily ignores the HTTP version (although I've not experimented much with this to see if only does this for MSIE user agents).

So by curious coincidence, MSIE and IIS work much better with proxies than with standards-compliant tools.

C.

symcbean
That's not quite true-- first off, the default changed in 2006 with IE7, and second, HTTP/1.0 requests out of WinINET won't send Accept-Encoding headers, and if you send a compressed response in return anyway, WinINET will refuse to decompress it.
EricLaw -MSFT-
+1  A: 

A fair number of servers will deliberately return HTTP/1.0 responses because some (older) browsers will afford a HTTP/1.0 server a higher connection limit than the 2-connection limit imposed for HTTP/1.1's persistent connections.

But in general, most "HTTP/1.0" implementations are really just slightly limited versions of the HTTP/1.1 implementations, and many HTTP/1.1 implementations don't really support some features of that version (e.g. pipelining in particular).

EricLaw -MSFT-