Caching and CDN review
Eleven checks that answer one question in stages: is this response cached, by whom, for how long, and what happens when it goes stale. Caching defects are quiet by nature. Nothing errors, nothing slows down on your machine, and the first report arrives from a visitor who saw yesterday's price. Run the list against a cold URL and then against the same URL a second time, because half of these answers only exist on the second request and reading them once tells you nothing.
11 checksabout 64 min end to end
What the response asks for
- How to check cache-control header
The directive set is the contract. Everything below is about whether anyone honours it. - How to check vary header
Without it a shared cache can serve a compressed body to a client that did not ask for one. - How to check ETag header
A validator is what turns an expired entry into a cheap 304 instead of a full re-download. - How to check last-modified header
Prove the conditional works with a wrong value as well as a right one, or you have proved nothing. - How to check stale-while-revalidate
Sending the directive and having it honoured are different facts, and curl can only show you the first.
Who is answering
- How to check if a site uses a CDN
Naming the edge from headers is inference. Know which part of your answer is measured and which is a guess. - How to check if CDN cache is hit or miss
A hit ratio read from one request is not a ratio, and the cold-then-warm pair is what makes it real. - How to check redirect chain
A redirect that is not itself cacheable adds a round trip to every request that hits it.
What is being delivered
- How to check content-encoding
Compression and caching interact, and the size a tool reports is not always the size on the wire. - How to check TTFB
The number that separates a cache miss from a slow origin, which is the whole point of asking. - How to check page size
Gives the cache decision a cost, so an argument about max-age has a number in it.
Take it with you
The file is the same list as Markdown checkboxes, ready to paste into a release ticket or a pull request description.
Ticks are kept in this browser only. They are not sent anywhere and other people do not see them.