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 17:37:22 GMT
On Sun, 9 Jun 1996, Robert S. Thau wrote:

> Hmmm... I'm not sure this is really a problem.  "Connection: Keep-alive"
> isn't particularly meaningful to an HTTP/1.1 client, but it's not illegal,
> and it doesn't alter the status of the connection (persistent by default).

Probably true. But I don't think we should send it. (saves us 23 bytes
per request at any rate).

> HTTP/1.1 clients *do* have to be special-cased, since the absence of
> a Connection header (or *any* Connection header which doesn't contain
> the token "Close") signals a request for a persistent connection on an
> HTTP/1.1 request.  However, I don't think the server's protocol version
> enters into it.  At any rate, the version of set_keepalive in the
> threaded code implements this interpretation of the rules, and I *believe*
> it ought to work with both HTTP/1.0 and conforming 1.1 clients.

Nope. Think about it; at least, think about it the way I'm thinking
about it (which may not be correct):

I'm a HTTP/1.1 client. I don't understand any of that HTTP/1.0
Keep-Alive stuff, I just know the HTTP/1.1 version. I send a request,
tagged with HTTP/1.1, to a server. This server is an Apache that
understands HTTP/1.1 persistent connections, but calls itself a
HTTP/1.0 server.

Now, what do I get back?

HTTP/1.0 200 OK
Date: Sun, 09 Jun 1996 17:33:23 GMT
Server: Apache/1.2dev Arachne-threads/0.00-DESTRUCT-0
Content-type: text/html
Content-length: 3597
Last-modified: Thu, 14 Mar 1996 21:02:27 GMT

There's nothing in there that suggests a persistent
connection. There's the Content-length, but that's not an indication -
a lot of non-persistent servers send those, and there are HTTP/1.0
servers out there that send incorrect content-lengths. We're not
allowed to trust them.

The server *has* to assume that we don't support persistent
connections, because there's no way it could know that we do. So it
waits for the connection to close, which it never does. Oops.

The only way it could have known is if we tagged ourself as HTTP/1.1,
which, just like on the client side, says "this connection should be
persistent unless otherwise stated".

I don't see any way around this...

Alexei Kosut <>      The Apache HTTP Server

View raw message