"Is this cached?" is not obvious
A resource keeps returning stale data, or never caches, or revalidates on every request. The answer is in the response headers — Cache-Control, ETag, Expires, Last-Modified — but reading them by eye is easy to misread.
Decode the headers
Paste the raw headers into the Cache Header Analyzer. It explains each directive: max-age (fresh window), no-cache (cache but revalidate), no-store (never cache), immutable (no revalidation), plus whether ETag/Last-Modified enable conditional requests.
Worked example
Cache-Control: max-age=3600, immutable + ETag means the browser can reuse the asset for an hour without even a conditional request. Remove immutable and it will revalidate via ETag instead.
Boundaries
- Interprets headers you paste; it does not fetch URLs or measure real cache hits.
- In HTTP/1.1,
max-ageoverridesExpireswhen both are present.
FAQ
no-cache vs no-store? no-cache still caches but revalidates; no-store never caches at all.
Why revalidate? ETag/Last-Modified let the server answer 304, saving bandwidth while staying correct.