Difference between Ctrl+Refresh and Ctrl+Shift+Refresh?
Solution 1:
Both are identical to the browser on the local machine. The headers you mentioned are the only difference.
The Ctrl+Refresh header means that any caching servers along the way should return a fresh copy of the page.
The Ctrl+Shift+Refresh headers mean that any caching servers along the way should return a fresh copy of the page, and should also not cache the page for any future requests. In other words, the next time the page is requested, it should either use a previous cache of the page or request a fresh copy, but should not use this one.
Pragma: no-cache is the HTTP 1.0 version of Cache-Control: no-cache. There is no HTTP 1.0 equivalent to Cache-Control: max-age=0.
RFC2616 section 14 subsection 9 has relevant information: w3c.org: RFC2616 sec 14.9.1
Solution 2:
There is another difference, and a big one at that.
When you hit Ctrl+Refresh, for every cached object that has a Last-Modified
or ETag
header, the browser will issue a request with an If-Modified-Since
or If-None-Match
header. The server may then choose to respond with a 304 Not Modified
, without re-sending any data (assuming the data is, in fact, not modified).
When you hit Ctrl+Shift+Refresh, the browser won't issue such conditional If-*
headers, leaving the server no option but to send the data again.