On Tue, Oct 02, 2007 at 01:12:08AM +0100, Nick Kew wrote: > RFC2616 mandates that a proxy MUST return interim (1xx) > responses to an HTTP/1.1 client, except where the proxy > itself requested the interim response. I'd interpret > that slightly liberally, to mean we MUST return an interim > response if the Client has asked for one.
Why the "interpretation"? It's a MUST not a SHOULD. > Our proxy currently eats all 1xx responses. That's broken. > It could possibly have some bearing on that elusive PR 37770. > > As I see it: > (1) 100-Continue should be forwarded to the client if there's > an Expect header asking for it. If there isn't, then > it really doesn't matter. Again, it's a MUST where the client supports HTTP/1.1. The proxy cannot know whether or not it "matters"; e.g. the 100 can prevent client I/O timeouts if response generation may take a long time. > (2) 101 Switching Protocols needs a framework to plug in a > provider for switched protocols. In the absence of one, > we should instead return 502. However, since we strip > out any Upgrade request header, the question is only > one of error-correction, and current behaviour is > probably no worse. A 502 seems reasonable here. > (3) Any other 1xx is unrecognised, and it's not clear > to me whether it's best to return 502 or to forward > the interim response. Again, MUST forward. joe
