Re: RELOAD do not work

From: Henrik Nordstrom <hno@dont-contact.us>
Date: Sun, 23 Aug 1998 01:10:12 +0200

Alan J. Flavell wrote:

> There's a rumour around that holding down SHIFT while using the
> reload button is beneficial. I must admit I don't know which
> browser/versions/platforms it's supposed to apply to, nor which
> particular aspect of caching it is influencing, but I can say that,
> anecdotally, it does seem to help.

The difference between a "Reload" and a "Shift reload" is usually like
 Reload -> Check if object has changed (is newer than the cached copy)
 Shift+Reload -> Reload the object, regardless if it has changed or not

The problem is that some versions of IE does not tell Squid that the
user wants to check if the object has changed when they press reload
and all that gets verified is that the previously cached object is
not newer than the one displayed. Browsers tell the proxy that the
user want's to validate the object with the origin server by using
the "Pragma: no-cache" or "Cache-Control: no-cache" headers.

Given that the object gets a new modification time each time it is
updated then reload should always give the latest object (unless
the browser client is broken). If the URL is updated with a file
that has a older modification time then "Shift+Reload" is needed
to force a update.

How to determine which case you are seeing:
Monitor the Squid access log while the user pushes the reload
button after the update.
a) No request is seen.
        Reload does not work at all in the client.
        Action: Upgrade browser
b) TCP_IMS_HIT
        Reload does not send "no-cache" header. Client uses object
        from it's local cache.
        Action: Upgrade browser
c) TCP_HIT or TCP_IMS_MISS
        Reload does not send "no-cache" header. Client gets object
        from Squid cache
        Action: Upgrade browser
d) TCP_MISS/304 or TCP_CLIENT_REFRESH/304
        The origin server says that the object is not modified.
        Client uses object from it's local cache.
        Action: Verify that the object gets a new modification
        time when it is updated, and that the clocks on the
        server, squid and client is reasonable in sync.
        Turn on debugging in Squid and note the "If-Modified-Since"
        header from the clients request, and the "Last-Modified"
        header from the server reply.
e) TCP_MISS/200 or TCP_CLIENT_REFRESH/200
        The origin server says that the object is modified.
        Client gets the new version.
        Action: No action needed, as everything works as expected.

---
Henrik Nordström
Sparetime Squid Hacker
Received on Sat Aug 22 1998 - 17:32:22 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:41:41 MST