PERSIST: propose to make default

The editorial group that is working on the HTTP/1.1 draft is strongly
interested in making persistent connections the default behavior for
HTTP/1.1 agents.  The goal is to encourage widespread use of persistent
connections as quickly as possible.

IF YOU DISAGREE, please address your objections to the http-wg mailing
list as quickly as possible.  I review the proposal below.

Dave Kristol
=============
The presence of an HTTP/1.1 protocol version in the request and
response is enough to tell

a) a server that the client expects to hold the connection open
b) a client that the server will try to hold the connection open.

If all the proxies between a user agent and an origin server understand
HTTP/1.1, the entire connection can be held open.

An HTTP/1.1 agent that does *not* want to keep a connection open sends a
Connection: 1 [that's a change:  digit one, meaning "just one
connection"] request or response header.

So the rules would be:

(HTTP/1.1) Server:
    For an HTTP/1.1 request, keep the connection open, unless there's a
    Connection: 1 header.  If the server chooses to close the
    connection, it should send a Connection: 1 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 expects a connection to remain open, but would
    decide to keep it open based on whether the response from a server
    contains a Connection: 1 header.  If the client doesn't want a
    connection to remain open, it should send a Connection: 1 request
    header.

    If the HTTP/1.1 client receives an HTTP/1.0 response, it expects
    the connection to close, unless it receives a Connection: keepalive
    response and it honors that convention.


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: 1 can be
used to advise, it isn't essential to the protocol's functioning
correctly.

Received on Thursday, 18 April 1996 13:46:52 UTC