On Sun, 17 Feb 2002, Graham Leggett wrote: > Igor Sysoev wrote: > > > The main problem is proxies, especially Squid (~70% of all proxies) > > Proxies can store compressed response and return it to browser > > that does not understand gzipped content. > > Is this verified behavior? If a proxy returns compressed content to a > browser that cannot handle it, then the content negotiation function > inside the proxy is broken - and as squid has an active developer > community, I seriously doubt that a bug this serious would go unfixed.
Yes, it is verified behavior. Squid can return cached compressed content to client that does not send "Accept-Encoding: gzip". As far as I know MSProxy 2.0 does the same. > RFC2616 describes the "Vary" header, which helps determine on what basis > a document was negotiated. mod_deflate should use content negotiation > and the presence of the Vary header to determine what to do, as is laid > down in the HTTP spec. > > > So you should by default disable encoding for requests > > with "Via" header and HTTP/1.0 requests (HTTP/1.1-compatible > > proxy must set "Via" header, HTTP/1.0-compatible should but not have). > > I disagree. Virtually all content is going to go through a proxy of some > kind before reaching a browser. Doing this will effective render > mod_deflate useless. > > mod_deflate should behave according to RFC2616 - and you won't have > problems. Using "Vary" does not resolve the problem completetly. "Vary" defined for HTTP/1.1 but we need to work with HTTP/1.0 requests also. Yes, Squid understand "Vary" and does not cache such response at all (at least Squid 1.2.x-2.4.x). But MSIE 4.x does not cache documents with "Vary" too. I don't know about later MSIE version - I will investigate it. Yes, compressing HTTP/1.1 and non-proxied requests only is not such effective as compressing any request with "Accept-Encoding: gzip". But any web master can choose is he intrested in old clients or not. About efficiency - my mod_deflate module with conservative settings (HTTP/1.1, non-proxied requests) save up to 8M/s bandwidth for www.rambler.ru and search.rambler.ru. Igor Sysoev