Henrik Nordstrom wrote:
fre 2006-11-17 klockan 16:13 +0100 skrev Thomas Ristic:
Despite the new "Expires" squid receives, it still replies to the client
request with the old Expires and max-age values for the object.
Yes... this is Bug #7...
Is this correct behavior? For the browser this looks like the object is
stale and it will reload it from the cache for every subsequent request?
It's not entirely correct, but how Squid currently operates.
In HTTP 1.0, an Expires date in the past means that no cache further
down may cache the entity at all (Sect. 10.7):
Applications must not cache this entity beyond the date given.
Thus, Squid sending such replies turns off all caches downstream
(browser history mechanisms excepted).
There is also the explicit recommendation (Sect. 9.3):
A cache should update its cached entity to reflect any new field values given in the 304 response.
which I would regard as mandatory for the Expires: header due to its
cache-defeating effect.
What happens at the moment is that browsers send verification requests
for every image every time an image is used and get stale responses from
squid every time. This greatly lengthens page loading times, as the
latencies of all the verification requests sum up to long delays, even
if the 304 responses are short.
Regards,
Oliver Schoett