Re: Expect: 100-continue and proxies

On Sun, Feb 21, 2010 at 07:28:30PM +0000, Jamie Lokier wrote:
> Joe Orton wrote:
> > 2616 s8.2.3 first bullet of the requirements for proxies has a MUST 
> > requirement that a proxy forwards the Expect header to the next hop.
> > 
> > Apache httpd complies with this (whether by design or by accident, I'm 
> > not sure), though it makes little sense: the proxy is written to read 
> > and forward the entire request body without waiting for an interim 
> > response from the server.
> 
> The proxy doesn't have to wait, because the client which sent Expect
> will not send a request body for the proxy to forward, until the
> timeout heuristic triggers.  There is no need for another delay from
> the proxy.

Ah, I wasn't clear here: httpd/mod_proxy will, given a request 
containing "Expect: 100-continue":

1) send the request including the Expect header to the next hop
2) generate and send a "100 Continue" to the client
3) read the request body from the client and forward it to the next hop
4) read the response from the next hop and forward it to the client

So I guess this seems to comply with the letter of 2616 ("MUST forward 
the request, including the Expect header field") but not the spirit: 
that Expect is handled end-to-end, not hop-by-hop.

Regards, Joe

Received on Monday, 22 February 2010 09:36:39 UTC