Re: [squid-users] Cache firefox ok, chrome... not!

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Sat, 11 Dec 2010 02:59:46 +1300

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
Received on Fri Dec 10 2010 - 13:59:52 MST

This archive was generated by hypermail 2.2.0 : Sat Dec 11 2010 - 12:00:02 MST