Re: Question about proxies forwarding HTTP/1.0 responses

Alex Rousskov wrote:
> > To be more precise, I'm fairly sure the proxy should indicate it is
> > HTTP/1.1 capable, because that's the capability of the message
> > sender, which is the proxy.  (It's not a tunnel).  My question
> > really is about the observed behaviour of widely deployed proxies
> > over the past few years.  Does anyone know what the behaviour of
> > deployed proxies is?
> 
> Proxies that claim HTTP/1.1 support usually send HTTP/1.1 messages. A
> few proxies have an option to configure the protocol version in the
> messages they sent.

Thanks Alex.  That answers my question.

I've been investigating the various workarounds in popular HTTP
servers and proxies, to see what folklore a new internet-facing server
should include for robustness.

Just fyi, I was looking at this part of Apache's default config:

  BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0

The "nokeepalive" directive disables persistence if a request comes
from a user-agent containing "MSIE 4.0b2;" _and_ if there's no Via header.

The "downgrade-1.0" makes the server pretend it's a HTTP/1.0 request.

The "force-response-1.0" makes the server send "HTTP/1.0" in the
response.

I wanted to decide whether the latter two can be ignored if there's a
Via header -- so that the user-agent pattern matching may be skipped
altogether.  Same applies to the other BrowserMatch directives.

Of course the only way to be sure is testing, but you have given me
confidence that it is fine to omit all the user-agent checks which
affect hop-by-hop if there's a Via header.

> Versions are supposed to be a hop-by-hop mechanism.

Yes, but because of some broken HTTP implementations there are
workarounds deployed.  I wondered if a proxy would forward a HTTP/1.0
response and label it as if the sender was HTTP/1.0 as part of the
workarounds which kept the net working in 1997 or so.

> There are a few proxies that support many HTTP/1.1 features but do
> not use HTTP/1.1 versions. Squid is one of them.

Do you know of any practical compatibility reason why Squid must
report itself as HTTP/1.0 even if it supported all HTTP/1.1 proxy
requirements?  Or is it simply that it doesn't implement the
requirements yet?

-- Jamie

Received on Thursday, 27 May 2004 09:41:09 UTC