I have a couple of queries related to Cache-Control.
If I specify Cache-Control max-age=3600, must-revalidate
for a static html/js/images/css file, with Last Modified Header defined in HTTP header:
a) If the server includes this header:
Cache-Control "max-age=3600, must-revalidate"
it is telling both client caches and proxy caches that once the content is stale (older than 3600 seconds) they must revalidate at the origin server before they can serve the content. This should be the default behavior of caching systems, but the must-revalidate
directive makes this requirement unambiguous.
b) The client should revalidate. It might revalidate using the If-Match
or If-None-Match
headers with an ETag, or it might use the If-Modified-Since
or If-Unmodified-Since
headers with a date.