uh oh -- halp!

marca@ncsa.uiuc.edu (Marc Andreessen)
Date: Tue, 7 Sep 93 15:17:09 -0500
From: marca@ncsa.uiuc.edu (Marc Andreessen)
Message-id: <9309072017.AA06025@wintermute.ncsa.uiuc.edu>
To: www-talk@nxoc01.cern.ch
Cc: ebina@ncsa.uiuc.edu
Subject: uh oh -- halp!
X-Md4-Signature: e636862d7b39fcb5d086d4fd3bc2021c
Status: RO
Major problem with HTTP/1.0 and HTTP0 in the same client:

Sending a HTTP/1.0 request to a HTTP0 server can result in problems
with the client and server are sufficiently far apart on the network,
apparently because of the following:

(a) Client sends 'GET /foobar HTTP/1.0' CR LF.
(b) Server says, aha, I'm supposed to send data, and starts sending.
(c) Clinet sends the rest of the HTTP/1.0 request, including the
    Accept fields, etc., followed by the HTTP/1.0 terminating (end of
    request) blank line.

The result is that the socket gets confused and the client only ends
up getting the first chunk of data (usually 1024 bytes).

Lots of people are seeing this with Mosaic 2.0p3, and Bill Perry's
Emacs client hits the same situation in some cases.  So it seems to be
general enough to be a real pain in the butt...

Any ideas?

Possibilities I see:

(a) Everyone upgrade to HTTP/1.0 pronto, and everyone forget about
    HTTP0 forever.
(c) Change all existing HTTP0 servers to catch the HTTP/1.0 request
    field when it's sent and wait for the rest of the HTTP/1.0 request
    to come through (but ignore it).
(c) Change HTTP/1.0 to only send a single CR LF in the entire
    request datastream.

None of these seem palatable to me.  Thoughts?