Re: [squid-users] caching for 60 minutes, ignoring any header

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Mon, 23 Sep 2013 16:29:46 +1200

On 23/09/2013 3:01 p.m., Ron Klein wrote:
> Hi,
>
> I'm trying to cache all favicons files, named favicon.ico, located
> always in the root of the web site (when they exist, of course)
> I would like to ignore any caching instruction originates from the
> (real) web server response headers.
> For instance, if I get the "last modified" header, I'd like to ignore it.
> I want the caching policy to be purely "mine".

FYI: Last-Modified is not caching policy. It is a timestamp telling when
the object was last changed. *Your* caching policy relies on such
details in order to calculate age teh same as teh default ones do.

And no there is no way to replace the caching features of HTTP with your
own. All Squid does is allow you to tune the parameters used by the
algorithm.

>
> I use Squid 3 on Ubuntu 12.04 .
> I created the following instruction in the configuration file:
> refresh_pattern -i ^http(s?)://.*/favicon.ico$ 60 0% 60
> ignore-private override-expire override-lastmod ignore-no-store

Erm...

"ignore-no-store" makes everything which is forbidden to be cached go
into the storage.
     NOTE: no-store on a favicon is usually only done on private company
internal sites where the entire domain or subdomain (its existence even)
is legally privilaged information.

"ignore-private" makes Squid ignore the privacy restrictions on marked
content and deliver the per-user content to all users.
    NOTE: private content *can* be cached by Squid. It is the ability to
send one users private data to another user which is enabled by this option.
    Consider that the favicon is sometimes used for ever-cookie style
tagging of users or signalling of persistent authentication states. You
just caused any server doing that to send the wrong signals to the wrong
users.

"override-lastmod" makes Squid ignore the Last-Modified timestamp when
applying caching policy.
   NOTE: without a last modified timestamp the caching policy is fed the
Date header on the transaction. Effectively everything is less than 1
second old.

"override-expires" makes Squid ignore the Expires: header on the
response when applying caching policy.
   NOTE: without expiry timestamp the object *never* expires.

>
> My question:
> Is this the correct instruction? I think not, since I get "HIT"
> response headers even after one hour of caching.

Are HITs somehow bad? note that HIT is not related to FRESH/STALE in
HTTP/1.1. It just means the cached object is *able* to be sent to the
client immediately.

You can set debug_options 22,3 to get a trace of the refresh algorithm
tests and reasons about a response FRESH/STALE.

Amos
Received on Mon Sep 23 2013 - 04:29:55 MDT

This archive was generated by hypermail 2.2.0 : Mon Sep 23 2013 - 12:00:05 MDT