Re: HTTP/1.1 & Proxies

At 09:13 PM 6/30/97 -0700, Yaron Goland wrote:
>Microsoft has decided to ship HTTP/1.1 support in the next beta of IE
>4.0, which will be released in the coming weeks. We have been running
>tests for some time now and have run into a very serious problem with
>some HTTP/1.0 proxies, specifically, Gauntlet. If we send out an
>HTTP/1.1 message, rather than replacing HTTP/1.1 with HTTP/1.0, the
>proxy will send the message out as is. The 1.1 server now thinks it is
>on a clean 1.1 connection and if we are performing a PUT might send
>chunked transfer. There is a bug with the proxy that it sometimes
>inserts an extra byte in the return stream. The result is that the
>integrity of the stream is lost. As such we need a way to tell when we
>are dealing with Gauntlet proxies.

The problem of not changing the version 1.1 to 1.0 unfortunately occurs in
several HTTP/1.0 implementations. For servers I can think of the Roxen
server. NCSA httpd also gets confused - it simply doesn't send a version
number in the response. I tried at some point to keep a list at

	http://www.w3.org/Protocols/HTTP/Forum/Conformance.html

but it leaves out a lot.

>I talked to Roy Fielding about this and he suggested we try to send an
>OPTIONS to the proxy to see what happened. So I did so and the result
>from our Gauntlet installation was:

>Our main concern is that if we can't find a reliable way to route around
>this problem we will have to turn off HTTP/1.1 support whenever we are
>going through a proxy. While we will provide a switch to turn on 1.1,
>obviously, most users will not use it.

One problem using the OPTIONS method is that it has to be forwarded to an
origin server. Hence, when proxies actually start to become HTTP/1.1
compliant and start to understand OPTIONS then you may start seeing a lot
of OPTIONS requests forwarded by proxies if the clients don't remember the
version number between executions.

An alternative would be to use TRACE which can be set up to not go further
than a single hop using the Max-Forward header. This does not have the
effect of generating lots of extra requests going all the way to an origin
server and it will be just as unknown to HTTP/1.0 applications.

Contacting people is definitely a good idea - even when you don't speak
Norvegian ;-)

Thanks,

Henrik
--
Henrik Frystyk Nielsen, <frystyk@w3.org>
World Wide Web Consortium
http://www.w3.org/People/Frystyk

Received on Tuesday, 1 July 1997 12:38:47 UTC