Re: [squid-users] Squid as Reverse Proxy - Backend Server Issues

From: Henrik Nordstrom <henrik_at_henriknordstrom.net>
Date: Sun, 08 Jun 2008 21:54:01 +0200

On mån, 2008-06-09 at 02:46 +0800, howard chen wrote:
> Hi
>
> Thank you very much, after played around for sometime, concept about
> caching are much clear now!
>
>
> On Fri, Jun 6, 2008 at 4:00 AM, Henrik Nordstrom
> <henrik_at_henriknordstrom.net> wrote:
> >
> > There is a default refresh_pattern in the code, equal to
> > refresh_pattern . 0 20% 4320
> >
>
> 1. Isn't this violating the standard (assuming the absence of squid as
> reverse proxy)?
>
> http://www.mozilla.org/projects/netlib/http/http-caching-faq.html
>
> expirationTime = responseTime + freshnessLifetime - currentAge
>
> RFC 2616: If only LM can be used, freshness = value of the "Date"
> header minus the value of the "Last-modified" header divided by 10...

Squid is using divided by 5.

RFC2616 says this regarding heuristic expiration time:

   heuristic expiration time
      An expiration time assigned by a cache when no explicit expiration
      time is available.

   Since origin servers do not always provide explicit expiration times,
   HTTP caches typically assign heuristic expiration times, employing
   algorithms that use other header values (such as the Last-Modified
   time) to estimate a plausible expiration time. The HTTP/1.1
   specification does not provide specific algorithms, but does impose
   worst-case constraints on their results. Since heuristic expiration
   times might compromise semantic transparency, they ought to used
   cautiously, and we encourage origin servers to provide explicit
   expiration times as much as possible.

   If none of Expires, Cache-Control: max-age, or Cache-Control: s-
   maxage (see section 14.9.3) appears in the response, and the response
   does not include other restrictions on caching, the cache MAY compute
   a freshness lifetime using a heuristic. The cache MUST attach Warning
   113 to any response whose age is more than 24 hours if such warning
   has not already been added.

   Also, if the response does have a Last-Modified time, the heuristic
   expiration value SHOULD be no more than some fraction of the interval
   since that time. A typical setting of this fraction might be 10%.

[copy-pasted from several sections]

> 2. Another interesting behavior I have tested is Squid will only store
> cache if expire > 60, where this value can be set?

See minimum_expiry_time.

Note: this cache limit is only on objects without an usable cache
validator such as ETag or Last-Modified. Objects with a cache validator
is always cached unless forbidden.

Regards
Henrik
Received on Sun Jun 08 2008 - 19:54:06 MDT

This archive was generated by hypermail 2.2.0 : Mon Jun 09 2008 - 12:00:04 MDT