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

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Thu, 04 Sep 2008 01:40:10 +1200

Markus Karg wrote:
> Sorry it was a typo. The test was done mit SQUID-2.7-STABLE4 actually.
> The HTTP/1.1-Support is only experimental???

Brand new in 2.7 and some bugs still being found.
It's also only on one side of Squid, the one which links to Servers
IIRC, so the client-facing code is still HTTP/1.0-only.

Amos

>
>> -----Original Message-----
>> From: Amos Jeffries [mailto:squid3_at_treenet.co.nz]
>> Sent: Mittwoch, 3. September 2008 07:14
>> To: Markus Karg
>> Cc: squid-users_at_squid-cache.org
>> Subject: Re: [squid-users] min-fresh / max-stale not working?
>>
>>> 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
>

-- 
Please use Squid 2.7.STABLE4 or 3.0.STABLE8
Received on Wed Sep 03 2008 - 13:40:12 MDT

This archive was generated by hypermail 2.2.0 : Thu Sep 04 2008 - 12:00:02 MDT