lör 2008-04-12 klockan 15:22 -0400 skrev Chris Woodfield: > Thanks for taking the time to explain this. So let me make sure I > understand the logic flow: > > Without broken_vary_encoding - > > If squid caches an object that was delivered with a "Vary: Accept- > Encoding" header, then each request for that object with a different > Accept-Encoding header will result in a request for that object back > to origin with "If-None-Match" set to the ETag of the origin object. > If the server is not broken, it then delivers another version of the > object (gzipped, plaintext, whatever) with a different ETag, and squid > caches that version in addition to the first. Life is good. Yes. > If the server is broken and returns "304 Not Modified" instead, squid > returns the same object, regardless of the requested encoding. Yes, as this is what the server told Squid to do.. > With broken_vary_encoding - > > Instead of checking with the server via If-None-Match, squid will > fetch a new copy of the object for each unique Accept-Encoding header > requested. Yes. > It appears, from my testing, that Apache and lighttpd both are broken > in this respect; so I plan on putting both ^Apache and ^lighttpd in my > broken_vary_encoding acl. Do you know of any other servers I might > want to add to this string as well? Apache is broken to different degrees depending on the version. From what I understand the Apache team have now fixed this problem, but not entirely sure in which release (if released yet...) > Also, when squid has multiple versions of an object due to this, will > a purge command with the URL alone get rid of all of them, or does one > have to do multiple queries with different Accept-Encoding headers to > make sure they all get purged? PURGE on Vary:ing objects is a bit troublesome (Bug #1893). It doesn't work very well, regardless of the setting of broken_vary_encoding, but I suppose that with broken_vary_encoding enabled the problems get even more visible. The upcoming 2.7 release has a fix for this problem. Regards Henrik