Re: Pipelining and Expect: 100-continue interaction

Marc Schneider wrote:
>    What  is  the  proper behavior if a client sends a request to a server
>    using   the   Expect   request-header   field  with  the  100-continue
>    expectation,  and  then pipelines another request before a 100 Contine
>    response  is  received and before the entity body of the first request
>    has been sent?
>    Is this legal? Are there any known clients that exhibit this behavior?

It's not legal.  If the client doesn't see a 100 Continue response, it
can choose not to send the request body and close the connection.  It
can't omit the body and send another request, not even if it's already
seen a response from the server.

Think about it: after the server sends an error response (without 100
Continue), the server cannot possibly know whether the client has sent
a request body or not.  It might be in flight in the network, because
the client is allowed to time out waiting for 100 Continue then send a
request body.  And because a request body is not syntactically
distinguishable from another request, the server must continue to
listen for a request body or close the connection.  Which means the
client must send it or close the connection.

-- Jamie

Received on Friday, 22 April 2005 15:03:16 UTC