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 HackerReceived 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