Re: [squid-users] min-fresh / max-stale not working?

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Wed, 3 Sep 2008 17:14:06 +1200 (NZST)

> Dear SQUID Community,
>
> it seems as if SQUID is not dealing correctly with "min-fresh" and
> "max-stale":
>
> Currently we are evaluating the use of SQUID-2.6-STABLE4. It all seems
> to work pretty well, but just "min-fresh" and "max-stale" is not
> working. Our client agent wants to guarantee to get data that is fresh
> for a specific amount of time. So we provide "min-fresh=3500" and
> "max-stale=0". To verify SQUID's behaviour we have programmed an origin
> server the always responds with some static headers and entity data, and
> a client that requests exactly that information, via SQUID as a proxy.
> The client uses the Cache-Control header with a min-fresh=3500 and
> max-stale=0 value, and the server is always sending data with a
> max-age=3600 value. But the client gets from SQUID a 200 OK response
> having max-age=3600 and Age=502! So, the current age of 502 plus the
> desired min-fresh of 3500 is 4002, minus the max-stale of 0 still is
> 4002, what is much more than the max-age of 3600 -- so the request
> cannot be satisfied without a warning, since the response will not be
> fresh long enough! So we expect to get at least a Warning header. But
> there is none! It looks like SQUID just ignores the min-fresh=3500 and
> max-stale=0 headers!
>
> The HTTP/1.1 specification says:
> 13.1.2 Warnings
> Whenever a cache returns a response that is neither first-hand nor
> "fresh enough" (in the sense of condition 2 in section 13.1.1), it MUST
> attach a warning to that effect, using a Warning general-header.
> also it says:
> 13.1.1 Cache Correctness
> If a stored response is not "fresh enough" by the most restrictive
> freshness requirement of both the client and the origin server, in
> carefully considered circumstances the cache MAY still return the
> response with the appropriate Warning header.
>
> In the default case, this means it meets the least restrictive freshness
> requirement of the client, origin server, and cache (see section 14.9)
>
> So for me it looks as if SQUID is buggy, since it does not add the
> mandatory Warning header. Can that be true? Or do I have to enable some
> switch like "HTTP/1.1-Compliance = YES"?

Squid 2.6 is HTTP/1.0 only. For any HTTP/1.1 stuff you will need Squid
2.7 and its experimental support.

As for the cache controls, someone more knowledgeable will hopefully speak
up.

Amos
Received on Wed Sep 03 2008 - 05:14:11 MDT

This archive was generated by hypermail 2.2.0 : Wed Sep 03 2008 - 12:00:02 MDT