You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Nick Kew <ni...@webthing.com> on 2007/10/02 02:12:08 UTC
Proxy: Handling Interim Responses
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.
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.
(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.
(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.
I'm not sure how I should forward an interim response to
the client: suggestions welcome.
--
Nick Kew
Application Development with Apache - the Apache Modules Book
http://www.apachetutor.org/
Re: Proxy: Handling Interim Responses
Posted by Joe Orton <jo...@redhat.com>.
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