Hello!
On Tue, Mar 24, 2015 at 11:59:24PM +0100, B.R. wrote:
Well the 2 only possible approaches in 1.0 are to send compressed or
uncompressed data.
Client supporting compressed version
will understand the uncompressed one but the reverse might not be true.
So if you are not able to make the answer being served from cache to vary
(which is the case in 1.0), you are actually stuck with a single option,
the only common denominator: no compression at all. Right?
Yes, the only option if we care about HTTP/1.0 is to avoid
compression for proxies.
draft-ietf-httpbis-p1-messaging-14>
As you can see from the paragraph you quoted, nginx only knows
version available).
An intermediary seing a 1.1 request coming in but not supporting that
version is required to step down to a version it understands, meaning 1.0.
It should not forward 1.1.
If nginx sees 1.1 coming, it is my understanding that every intermediary
supports at least 1.1, whatever number of intermediaries we are talking
about.
No. The text ensures that nginx will see HTTP/1.0 if the last
proxy doesn’t understand HTTP/1.1. There is no requirement to
preserve supported versions untouched. Moreover, first sentence
requires intermediaries to use their own version. And RFC2616
explicitly requires the same,
Due to interoperability problems with HTTP/1.0 proxies discovered
since the publication of RFC 2068[33], caching proxies MUST, gateways
MAY, and tunnels MUST NOT upgrade the request to the highest version
they support.
That is, in a request/response chain like this:
client -> proxy1 -> proxy2 -> nginx
If proxy1 supports only HTTP/1.0, but proxy2 supports HTTP/1.1,
nginx will see an HTTP/1.1 request.
–
Maxim D.
http://nginx.org/