Understand cache headers without guessing

Paste response headers and learn whether a resource is fresh, revalidated, or never cached.

By The DevFixPro Editorial Team · independent editorial research project

Private by design. Every tool linked below runs 100% in your browser — your code, text, and tokens never leave your device.

"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-age overrides Expires when 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.

Frequently Asked Questions

What is the difference between a cached hit and a revalidated response?

A fresh response is served from the local copy with no network round trip at all. A revalidated response still costs a request, and the server either confirms the copy is unchanged or sends a new one.

Why is my static asset not being cached at all?

Look for a directive that forbids storing the response, and also check whether the response sets a cookie. A cookie on the response is enough to prevent caching in many configurations, which is easy to introduce by accident.

How should I version a long-lived asset?

Put a hash or version in the file name and give the response a very long lifetime. A new build produces a new name, so the URL changes and the long cache lifetime never serves stale bytes.

← All guides

Related tools from our network

A focused set of free calculators and guides across related topics — no account required.