httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexei Kosut <>
Subject Re: 1.1b3 and things???
Date Sun, 09 Jun 1996 18:58:15 GMT
On Sun, 9 Jun 1996, Robert S. Thau wrote:

>   I'm a HTTP/1.1 client. I don't understand any of that HTTP/1.0
>   Keep-Alive stuff...
> This appears to be where we disagree.  I think it's reasonable to
> expect that *any* HTTP/1.1 client will understand HTTP/1.0 Keepalive
> for a while yet (which is why the grotty details of doing so are
> spelled out in section of the draft-04).

"for a while yet". I might point out that, for example, one out of
every thirty servers still runs NCSA httpd 1.3, a server that's
severely out of date, not to mention the security holes. Counting on
people to upgrade servers is never a good idea.

I think saying that "well, we won't break clients for the next year or
so" is *extremely* short-sighted. Because, yes, 19.7.1 does say how to
be compatible with HTTP/1.0 Keep-Alive, but it's an appendix, and the
words used are "may wish". Not MUST, or even SHOULD. There's nothing
that says "oh, by the way, if you don't implement this, your client
will hang whenever it tries to retrieve a document from the most
popular server." Nor should it.

> Accordingly, I've been, assuming we'd keep on sending "Connection:
> keep-alive" to all clients as long as we claim to be an HTTP/1.0
> server --- including to HTTP/1.1 clients which came in without
> Connection: Close.  So your hypothetical client cruises in and sees:
>   HTTP/1.0 200 OK
>   Irrelevant-headers: irrelevant-values
>   Connection: keep-alive

But my hypothetical client doesn't know what Connection: keep-alive
means. It doesn't have to, it's not supposed to. It will be looking for
two things:

1) the protocol version. If it's 1.1 or greater, it will assume a
persistent connection.
2) a Connection: close header. In all actuality, it doesn't even have
to look for this, because if the server's going to close the
connection, it will anyway.

Now, I could be wrong, but everything I can read says that we can't
give a HTTP/1.1 client a persistent connection unless they either send
a "Connection: Keep-Alive" (which a lot of them are probably going to
do, for compatibility with old servers), or we up our protocol number
to HTTP/1.1.

Probably the best way to get around this argument is just to make
ourselves compliant with HTTP/1.1, and label ourselves such. Heck,
once you've got chunked content-coding support, the rest is about ten
lines of code. (at least, it was in -03, I haven't looked closely at
-04 for what exactly we'd have to do).

Alexei Kosut <>      The Apache HTTP Server

View raw message