- From: Dave Kristol <dmk@allegra.att.com>
- Date: Wed, 17 Apr 96 15:45:04 EDT
- To: http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
John Franks <john@math.nwu.edu> wrote (yesterday):
> Perhaps there could be a "Connection: non-persistant" header. It makes
> sense to have the most common situation be the default (requiring no
> header) and add a header for the exceptional or at less common behavior.
Albert-Lunde@nwu.edu (Albert Lunde) wrote (yesterday):
> > [I wrote]:
> > All true. And yet, there's always the danger that the connection to
> > the client might close unexpectedly, and the client would have to
> > recover gracefully. Would adopting my proposal make the situation
> > worse?
>
> It seems like the "worst case" is the same, but the "average case"
> for a server that really doesn't want to do persistent connections
> is worse. If the client and server have similar "expectations"
> I'd think there would be fewer connections closed ungracefully.
I like John Franks's idea (but let's spell it "non-persistent :-).
So the rules would be:
Server:
For an HTTP/1.1 request, keep the connection open, unless there's a
Connection: non-persistent (or whatever) header. Furthermore, if
the server chose to close the connection, it would send a
Connection: non-persistent response header.
For an HTTP/1.0 request, a server could implement the existing,
sometimes honored Connection: keepalive convention.
Client:
An HTTP/1.0 client would, of course, do what it does now, which may
include using the existing Connection: keepalive convention.
An HTTP/1.1 client expect a connection to remain open, but would
decide based on the first response from a server. If it didn't
want a connection to remain open, it would send a Connection:
non-persistent request header.
If the HTTP/1.1 client receives an HTTP/1.0 response, it expects
the connection to close. Otherwise it expects the connection to
remain open, unless it receives a Connection: non-persistent
response header.
Superficially this proposal may seem complex. However, for the default
case HTTP/1.1 agents need send no extra headers to get/maintain the
preferred kept-alive connection behavior. While Connection:
non-persistent can be used to advise, it isn't essential to the
protocol's functioning correctly.
Dave Kristol
Received on Wednesday, 17 April 1996 12:53:17 UTC