The HTTP server uses content negotiation to serve a single URL or gzip encoding based on the Accept-Encoding client header.
Now let's say that we have a proxy cache, like a squid between clients and httpd.
If the proxy server cached both URL encodings, how does it determine what to serve?
A non-gzip instance (not initially served by Vary ) can be sent to any client, but encoded instances (having Vary: Accept-Encoding ) can only be sent to clients with the same Accept-Encoding header value as was used in the initial request.
eg. Opera sends "deflate, gzip, x-gzip, identity, *;q=0" , but IE8 sends "gzip, deflate" . According to the specification, caches should not exchange caches encoded by content between two browsers. It's true?
Steve clay
source share