I think people have gotten too bogged down in the minutiae of my proposal.
The big picture is for clients and servers to behave as they do now, except
that instead of closing the client-server connection, leave it open (a
SHORT time) to see if another transaction between the same parties will
follow. The SHORT time is enough to allow the client to decide to download
images (typically) and make a new GET request, just as it would do now.
Unlike now, there would be an open connection on which to do it, so the
setup time for a connection (and the tear-down time for the previous one)
are saved.
Larry Masinter <masinter@parc.xerox.com> says:
> Aren't there possible race conditions, where the server decides to
> shut down the connection just as the client sends the second GET?
Indeed. The only race condition of interest is where the client starts
a new request just as the server is shutting down the connection. But
because the proposal I put forth essentially reverts to current
behavior (open a new connection, make a request, etc.) on a dropped
connection, the recovery method is hardly more burdensome than what
happens now.
I want to emphasize again that I have in mind a SMALL change. The
reason is simple. With this small change we can make evolutionary
changes to the components we have, without introducing a stage where
old versions of a client or server can't talk to the new versions.
Other proposals (except Pragma: Keep-connection; I guess my proposal is
equivalent to an implicit Pragma: Keep-connection.), however
sophisticated (and complicated), introduce incompatibities, and are
therefore less desirable.
Dave Kristol