From the Cloudflare caching part of your Conrad Caching note. What Cloudflare does besides caching (WAF, bots, Workers versus containers) is in Cloudflare at the edge.
DYNAMIC until a Cache Rule makes them eligible; headers alone never make Cloudflare cache them.CF-Cache-Status: HIT, MISS, EXPIRED (lifetime over, fetched again), REVALIDATED (origin said 304, same copy, new lifetime), STALE (an expired copy was served, for example while refreshing or because the origin was unreachable), BYPASS (private, no-store, Set-Cookie or a rule), DYNAMIC (not a cacheable type).s-maxage or CDN-Cache-Control for the edge, max-age for the browser, or an Edge TTL set in the Cache Rule."In a KV or Cloudflare Cache API (per data center)": the CDN cache is per data center, and the Cache API is how a Worker reads and writes that same cache. Workers KV is a different product, a global key-value store that a Worker uses for its own data. Nothing goes to KV unless a Worker puts it there.
STALE means an expired copy was served, while a fresh one is fetched or because the origin failed. proxy-revalidate and must-revalidate are what forbid that; without them Cloudflare may serve stale in those cases.
CF-Cache-Status for each; explain every value."Because Cloudflare only caches static file types by default. HTML and JSON are passed to the origin as dynamic whatever the headers say. To cache them you add a Cache Rule that makes the requests eligible, and then s-maxage, CDN-Cache-Control or the rule's own TTL decides for how long. Before doing that for HTML I would check how many variants the page has, because the CDN caches by URL and a wrong variant for a logged-in user is worse than no cache."
"Purge it. By URL for one product, by cache tag or prefix for a whole category if a rule sets the tags, or everything as a last resort. Purging is cheap on Cloudflare, so the usual design is a short edge lifetime plus an event-driven purge when the content changes, and stale-while-revalidate so users never wait for the refresh."
Nothing yet. Notes filed here show up on this page and the section overview.
HTTP caching
Cache-Control directives, freshness and validation with ETag and Last-Modified, 304 responses, private versus shared caches, and what a reverse proxy is — the HTTP caching part of your Conrad Caching note.
Nitro's cache
defineCachedEventHandler, cachedFunction and route-rule cache — every option, what swr does on the server and in the header, where entries live, sharing them through Redis or Valkey, and the headers the browser should get for cached HTML.