This tells internet proxy servers whether they are allowed to cache ("public") or not cache ("private") the page / resource.
Note that internet proxies can only cache unencrypted data, so don't expect internet proxies to reduce the HTTPS traffic load on your servers
For web browsers, it should not matter whether the page / resource is public or private. The "no-store" instruction is used to tell web browsers (as well as internet proxies) not to cache the page / resource
The page can indicate a "Last-Modified" date to identify the page version
And/or an "Etag" can be used with an arbitrary value to indicate the version.
A page / resource can specify duration with "max-age", after which the page should be considered outdated.
And/or a specific date and time after the page / resource "Expires".
Web browsers use the URL as the cache key. Each URL can have its own caching instructions. Typically the browser considers the entire URL up to an (optional) anchor as key. E.g. http://example.com/foo?bar=key-ends-here#not-part-of-key
When you click on a link or bookmark to a page, you navigate forwards.
When you click the browser BACK button or use the keyboard or Javascript equivalent ("window.history.back()"), you navigate backwards.
When you click the browser REFRESH button or use the keyboard or Javascript equivalent ("location.reload(false)"), you reload the page.
GET /hello/default.asp HTTP/1.1 HTTP/1.1 200 OK Date: Fri, 23 Nov 2018 14:32:33 GMT Content-Length: 373
Resource | Situation | Forward on Chrome 70 FireFox 63 Safari 12 Internet Explorer 11 Edge 42 |
Backward on Chrome 70 FireFox 63 Safari 12 Internet Explorer 11 |
Backward on Edge 42 |
Reload on Chrome 70 FireFox 63 Safari 12 Internet Explorer 11 Edge 42 |
---|---|---|---|---|---|
page | <none> | no matchers | cache | cache | no matchers |
linked resource | <none> | no matchers | cache | cache | no matchers |
3rd party iframed page | <none> | no matchers | cache | NO MATCHERS | no matchers |
3rd party iframed linked resource | <none> | no matchers | cache | NO MATCHERS | no matchers |
GET /hello/etag.asp HTTP/1.1 HTTP/1.1 200 OK ETag: W/"0029", Date: Fri, 23 Nov 2018 17:11:25 GMT Content-Length: 394
GET /hello/etag.asp HTTP/1.1 If-None-Match: W/"0029" HTTP/1.1 304 Not Modified ETag: W/"0029", Date: Fri, 23 Nov 2018 17:32:21 GMT
GET /hello/etag.asp HTTP/1.1 If-None-Match: W/"0029" HTTP/1.1 200 OK ETag: W/"3059", Date: Fri, 23 Nov 2018 17:35:32 GMT Content-Length: 432
Resource | Situation | Forward on Chrome 70 FireFox 63 Safari 12 Edge 42 |
Forward on Internet Explorer 11 |
Backward on Chrome 70 FireFox 63 Safari 12 Internet Explorer 11 |
Backward on Edge 42 |
Reload on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 |
Reload on Safari 12 |
---|---|---|---|---|---|---|---|
page | Etag | Single INM | Single INM | cache | cache | Single INM | no matchers |
linked resource | Etag | Single INM | CACHE | cache | cache | Single INM | SINGLE INM and NO MATCHERS |
3rd party iframed page | Etag | Single INM | Single INM | cache | SINGLE INM | Single INM | Single INM |
3rd party iframed linked resource | Etag | Single INM | Single INM | cache | SINGLE INM | Single INM | Single INM |
GET /hello/last-modified.asp HTTP/1.1 HTTP/1.1 200 OK Last-Modified: Sat, 17 Nov 2018 23:33:51 GMT Date: Fri, 23 Nov 2018 22:32:25 GMT
GET /hello/last-modified.asp HTTP/1.1 If-Modified-Since: Sat, 17 Nov 2018 23:33:51 GMT HTTP/1.1 304 Not Modified Date: Fri, 23 Nov 2018 22:40:28 GMT
Resource | Situation | Forward on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
Backward on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
Reload on FireFox 63 Internet Explorer 11 Edge 42 |
Reload on Chrome 70 |
Reload on Safari 12 |
---|---|---|---|---|---|---|
page | Last-Modified | cache | cache | IMS | IMS | no matchers |
linked resource | Last-Modified | cache | cache | IMS | CACHE | first CACHE, after that IMS |
3rd party iframed page | Last-Modified | cache | cache | IMS | CACHE | CACHE |
3rd party iframed linked resource | Last-Modified | cache | cache | IMS | CACHE | CACHE |
GET /hello/last-modified-etag.asp HTTP/1.1 HTTP/1.1 200 OK Last-Modified: Sat, 17 Nov 2018 23:39:59 GMT ETag: W/"3059",
GET /hello/last-modified-etag.asp HTTP/1.1 If-None-Match: W/"3059" If-Modified-Since: Sat, 17 Nov 2018 23:39:59 GMT HTTP/1.1 304 Not Modified ETag: W/"3059", Date: Fri, 23 Nov 2018 23:16:47 GMT
Resource | Situation | Forward on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
Backward on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
Reload on FireFox 63 Internet Explorer 11 Edge 42 |
Reload on Chrome 70 |
Reload on Safari 12 |
---|---|---|---|---|---|---|
page | Last-Modified & Etag | cache | cache | IMS/INM | IMS/INM | no matchers |
linked resource | Last-Modified & Etag | cache | cache | IMS/INM | CACHE | first CACHE, after that IMS |
3rd party iframed page | Last-Modified & Etag | cache | cache | IMS/INM | CACHE | CACHE |
3rd party iframed linked resource | Last-Modified & Etag | cache | cache | IMS/INM | CACHE | CACHE |
GET /hello/must-revalidate.asp HTTP/1.1 HTTP/1.1 200 OK Cache-Control: must-revalidate Date: Sat, 24 Nov 2018 17:21:59 GMT
Resource | Situation | Forward on Chrome 70 FireFox 63 Edge 42 Safari 12 |
Forward on Internet Explorer 11 |
Backward on Chrome 70 FireFox 63 Internet Explorer 11 Safari 12 |
Backward on Edge 42 |
Reload on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
---|---|---|---|---|---|---|
page | must-revalidate | no matchers | no matchers | cache | cache | no matchers |
linked resource | must-revalidate | no matchers | CACHE | cache | cache | no matchers |
3rd party iframed page | must-revalidate | no matchers | no matchers | cache | NO MATCHERS | no matchers |
3rd party iframed linked resource | must-revalidate | no matchers | no matchers | cache | NO MATCHERS | no matchers |
GET /hello/must-revalidate-last-modified.asp HTTP/1.1 HTTP/1.1 200 OK Cache-Control: must-revalidate Last-Modified: Sat, 17 Nov 2018 23:33:51 GMT Date: Sat, 24 Nov 2018 17:29:31 GMT
GET /hello/must-revalidate-last-modified.asp HTTP/1.1 If-Modified-Since: Sat, 17 Nov 2018 23:33:51 GMT HTTP/1.1 304 Not Modified Cache-Control: must-revalidate Date: Sat, 24 Nov 2018 17:30:29 GMT
Resource | Situation | Forward on Chrome 70 |
Forward on FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
Backward on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
Reload on Chrome 70 FireFox 63 Internet Explorer 11 |
Reload on Edge 42 |
Reload on Safari 12 |
---|---|---|---|---|---|---|---|
page | must-revalidate & Last-Modified (not expired) | IMS | CACHE | cache | IMS | IMS | no matchers |
linked resource | must-revalidate & Last-Modified (not expired) | IMS | CACHE | cache | IMS | IMS | first CACHE, after that NO MATCHERS |
3rd party iframed page | must-revalidate & Last-Modified (not expired) | IMS | CACHE | cache | IMS | CACHE | CACHE |
3rd party iframed linked resource | must-revalidate & Last-Modified (not expired) | IMS | CACHE | cache | IMS | CACHE | CACHE |
GET /hello/expires.asp HTTP/1.1 HTTP/1.1 200 OK Expires: Sat, 24 Nov 2018 13:32:34 GMT Date: Sat, 24 Nov 2018 13:31:33 GMT
Resource | Situation | Forward on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
Backward on Chrome 70 FireFox 63 Internet Explorer 11 Safari 12 |
Backward on Edge 42 |
Reload on FireFox 63 Internet Explorer 11 |
Reload on Chrome 70 |
Reload on Edge 42 |
Reload on Safari 12 |
---|---|---|---|---|---|---|---|---|
page | Expires (not expired) | cache | cache | cache | no matchers | no matchers | no matchers | no matchers |
linked resource | Expires (not expired) | cache | cache | cache | no matchers | CACHE | no matchers | first CACHE, after that NO MATCHERS |
3rd party iframed page | Expires (not expired) | cache | cache | cache | no matchers | CACHE | CACHE | CACHE |
3rd party iframed linked resource | Expires (not expired) | cache | cache | cache | no matchers | CACHE | CACHE | CACHE |
page | Expires (expired) | no matchers | cache | cache | no matchers | no matchers | no matchers | no matchers |
linked resource | Expires (expired) | no matchers | cache | cache | no matchers | no matchers | no matchers | no matchers |
3rd party iframed page | Expires (expired) | no matchers | cache | NO MATCHERS | no matchers | no matchers | no matchers | no matchers |
3rd party iframed linked resource | Expires (expired) | no matchers | cache | NO MATCHERS | no matchers | no matchers | no matchers | no matchers |
GET /hello/max-age.asp HTTP/1.1 HTTP/1.1 200 OK Cache-Control: max-age=30 Date: Sat, 24 Nov 2018 14:40:37 GMT
Resource | Situation | Forward on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
Backward on Chrome 70 FireFox 63 Internet Explorer 11 Safari 12 |
Backward on Edge 42 |
Reload on FireFox 63 Internet Explorer 11 |
Reload on Chrome 70 |
Reload on Edge 42 |
Reload on Safari 12 |
---|---|---|---|---|---|---|---|---|
page | max-age (not expired) | cache | cache | cache | no matchers | no matchers | no matchers | no matchers |
linked resource | max-age (not expired) | cache | cache | cache | no matchers | CACHE | no matchers | first CACHE, after that NO MATCHERS |
3rd party iframed page | max-age (not expired) | cache | cache | cache | no matchers | CACHE | CACHE | CACHE |
3rd party iframed linked resource | max-age (not expired) | cache | cache | cache | no matchers | CACHE | CACHE | CACHE |
page | max-age (expired) | no matchers | cache | cache | no matchers | no matchers | no matchers | no matchers |
linked resource | max-age (expired) | no matchers | cache | cache | no matchers | no matchers | no matchers | no matchers |
3rd party iframed page | max-age (expired) | no matchers | cache | NO MATCHERS | no matchers | no matchers | no matchers | no matchers |
3rd party iframed linked resource | max-age (expired) | no matchers | cache | NO MATCHERS | no matchers | no matchers | no matchers | no matchers |
GET /hello/expires-max-age.asp HTTP/1.1 HTTP/1.1 200 OK Cache-Control: max-age=30 Expires: Sat, 24 Nov 2018 15:10:05 GMT Date: Sat, 24 Nov 2018 15:09:04 GMT
Resource | Situation | Forward on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
Backward on Chrome 70 FireFox 63 Internet Explorer 11 Safari 12 |
Backward on Edge 42 |
Reload on FireFox 63 Internet Explorer 11 Edge 42 |
Reload on Chrome 70 |
Reload on Edge 42 |
Reload on Safari 12 |
---|---|---|---|---|---|---|---|---|
page | max-age (expired), Expires (not expired) | no matchers | cache | cache | no matchers | no matchers | no matchers | no matchers |
linked resource | max-age (expired), Expires (not expired) | no matchers | cache | cache | no matchers | no matchers | no matchers | no matchers |
3rd party iframed page | max-age (expired), Expires (not expired) | no matchers | cache | NO MATCHERS | no matchers | no matchers | no matchers | no matchers |
3rd party iframed linked resource | max-age (expired), Expires (not expired) | no matchers | cache | NO MATCHERS | no matchers | no matchers | no matchers | no matchers |
page | max-age (not expired), Expires (expired) | cache | cache | cache | no matchers | no matchers | no matchers | no matchers |
linked resource | max-age (not expired), Expires (expired) | cache | cache | cache | no matchers | CACHE | no matchers | first CACHE, after that NO MATCHERS |
3rd party iframed page | max-age (not expired), Expires (expired) | cache | cache | cache | no matchers | CACHE | CACHE | CACHE |
3rd party iframed linked resource | max-age (not expired), Expires (expired) | cache | cache | cache | no matchers | CACHE | CACHE | CACHE |
GET /hello/no-cache.asp HTTP/1.1 HTTP/1.1 200 OK Cache-Control: no-cache Date: Sat, 08 Dec 2018 17:48:03 GMT
Resource | Situation | Forward on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
Backward on Chrome 70 FireFox 63 Internet Explorer 11 Safari 12 |
Backward on Edge 42 |
Reload on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
---|---|---|---|---|---|
page | no-cache | no matchers | cache | cache | no matchers |
linked resource | no-cache | no matchers | cache | cache | no matchers |
3rd party iframed page | no-cache | no matchers | cache | no matchers | no matchers |
3rd party iframed linked resource | no-cache | no matchers | cache | no matchers | no matchers |
GET /hello/no-store.asp HTTP/1.1 HTTP/1.1 200 OK Cache-Control: no-store Date: Sat, 08 Dec 2018 17:30:00 GMT
Resource | Situation | Forward on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
Backward on Chrome 70 FireFox 63 Edge 42 |
Backward on Internet Explorer 11 Safari 12 |
Reload on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
---|---|---|---|---|---|
page | no-store | no matchers | no matchers | CACHE | no matchers |
linked resource | no-store | no matchers | no matchers | CACHE | no matchers |
3rd party iframed page | no-store | no matchers | no matchers | CACHE | no matchers |
3rd party iframed linked resource | no-store | no matchers | no matchers | CACHE | no matchers |
GET /hello/no-cache-no-store-must-revalidate.asp HTTP/1.1 HTTP/1.1 200 OK Cache-Control: no-cache, no-store, must-revalidate Date: Sat, 08 Dec 2018 17:58:43 GMT
Resource | Situation | Forward on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
Backward on Edge 42 |
Backward on Chrome 70 FireFox 63 |
Backward on Internet Explorer 11 Safari 12 |
Reload on Chrome 70 FireFox 63 Internet Explorer 11 Edge 42 Safari 12 |
---|---|---|---|---|---|---|
page | no-cache, no-store, must-revalidate | no matchers | no matchers | no matchers | CACHE | no matchers |
linked resource | no-cache, no-store, must-revalidate | no matchers | no matchers | no matchers | CACHE | no matchers |
3rd party iframed page | no-cache, no-store, must-revalidate | no matchers | no matchers | CACHE | CACHE | no matchers |
3rd party iframed linked resource | no-cache, no-store, must-revalidate | no matchers | no matchers | no matchers | CACHE | no matchers |
As a side note, the cookie behavior of web browsers is also very inconsistent.
Mail your comments to gertjans@xs4all.nl.