Search squid archive

min-fresh / max-stale not working?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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"?

Thanks!
Markus


[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux