9

What happens if you don't set the cache-control header? Does HTTP specify a default behaviour that clients should follow or is it up to the clients to decide?

In Chrome, I have seen some Javascript requests that have no cache-control headers showing up as 200 (from disk cache). Is Chrome optimizing this?

In IE, I have seen it show up as a 304 (not modified).

How do I understand this better?

  • 1
    "no cache headers" meaning no Cache-Control header, or really no cache headers? Cache-control is not the only header that affects caching. Most web servers will send Last Modified headers for static assets like Javascript files. – Tim Fountain Dec 8 '17 at 13:29
11

If there is no Cache-Control header and no Expires header, but there is a Last-Modified header (which most web servers send by default for static assets), most browsers will use heuristic freshness to determine how long to cache that asset for.

The typical calculation for this (which is the one suggested by RFC 7234) is:

(current time - last modified time) / 10

So, for example, if the last modified time for an image states it was last changed 60 days ago, a browser might decide it could reasonably use the locally cached version of that image for 6 days before checking for a new version.

Note that in most cases, if you hit refresh, you are telling the browser to fetch a fresh version, so in that situation this logic wouldn't apply.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.