Re: PERSIST: headers needed at all?

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