On 11/12/10 02:04, Rodolfo Alcazar Portillo wrote:
[sorry, if this message repeats, I've got a rejection, and not sure if
it arrived.]

On Fri, 2010-12-10 at 17:03 +1300, Amos Jeffries wrote:
Its clear from your message that something other than the usual timing
headers are affecting things.

Yes, but I suppose it has no relation with this ffox vs chrome issue.

Sadly the other headers I was going to check are not there, can you
supply the full headers please? use a.b.c.d or example.invalid to
obscure any IPs or domains you don't want to publish.

No problem, find them attached. Remember: ignore-cc is already set
-squid restarted and reloaded several times-! The example is not a first
petition, I mean, I reloaded the page a couple of times so squid store
it before piping the logs. Firefox keeps doing fine HITs:

Okay, there are two things I notice about these requests.

First thing is that the content varies on Accept-Encoding header, plus Chrome advertises support for sdch encoding. AFAIK firefox does not support that encoding format so will not advertise it. This means Chrome and firefox are requesting completely different objects in the cache. 3.x does not yet support caching multiple variants at once.


Second thing I notice is the absence of ETag features for variant identification. Which Squid could use to identify that Chrome wants the cached object, or that the 304 response Chrome got is allowed to update the firefox variant's object details.

Chrome is sending an If-Modified-Since header and the 304 applies to that. So if Squid is behaving properly and not sharing the variants with different possible encodings then it has no stored object to replace the firefox variant with and each IMS request will be a MISS.


To test this out there are some permutations that will show if it's working:

- check two Chrome requests in a row. When the browser cache is erased before testing and between requests. (good behaviour: the second is a HIT).

-check two Chrome requests in a row. when the browser cache is cleared before each request AND the squid cache is empty before the first request. (good behaviour: first is a MISS/200, second is a HIT).

- check a firefox request after a Chrome request. when both browser caches are cleared before requesting and squid cache is empty to start with. (good behaviour: both are MISS/200).


For a fix:
Adding ETag support by the web server may fix this or reduce the MISS a lot.

Amos
--
Please be using
  Current Stable Squid 2.7.STABLE9 or 3.1.9
  Beta testers wanted for 3.2.0.3

Reply via email to