From the HTTP caching, validation and cache-types parts of your Conrad Caching note.
public (any cache), private (the browser only), no-store (nobody).max-age in seconds; s-maxage the same but only for shared caches, so the CDN can keep something longer than the browser.no-cache means validate before every use. must-revalidate forbids serving stale when the origin cannot be reached (proxy-revalidate for shared caches). immutable means do not even revalidate while fresh. stale-while-revalidate serves stale and refreshes in the background; stale-if-error serves stale when the origin fails.ETag (a token for the content, sent back as If-None-Match) and Last-Modified (sent back as If-Modified-Since). A 304 Not Modified has no body and makes the copy fresh again. ETag is the stronger of the two.W/"…" promises equivalence, not identical bytes; rendered HTML gets weak tags because compression changes the bytes, and a 304 is still right. Static files get strong tags, which byte ranges need.CDN-Cache-Control."After the max-age expires, can't serve the cached page" is close: once stale, the cache must check with the origin before using the copy, and if the origin is unreachable it must return an error rather than the stale copy. While fresh, the copy is served normally.
The managed-cache line says Cloudflare "provides own headers for cookie control". The headers are CDN-Cache-Control and Cloudflare-CDN-Cache-Control, and they give the CDN its own lifetime, separate from the browser's. Cookies affect caching differently: a response with Set-Cookie is bypassed by default.
stale-while-revalidate, s-maxage, If-None-Match. Last-Modified has one-second resolution, which is one reason ETag is preferred.
Cache-Control: who may cache it, for how long, and what happens when it goes stale."no-cache is badly named. It allows the cache to keep a copy but requires a check with the origin before every use, usually a conditional request with the ETag, which gets a 304 when nothing changed. That is the normal setting for HTML. no-store means no copy anywhere, for sensitive responses like account data. It also switches off the back-forward cache, so I would not put it on ordinary pages."
"While the copy is within max-age it just uses it. When it is stale, or always with no-cache, it asks the origin: it sends the ETag back as If-None-Match, or the Last-Modified date as If-Modified-Since. If nothing changed the origin answers 304 with no body and the copy is fresh again; otherwise it gets a 200 with the new content. That round trip is cheap, which is why HTML can be revalidated on every visit without hurting much."
Nothing yet. Notes filed here show up on this page and the section overview.
Request path and caching
How a request reaches a Conrad storefront page and becomes interactive, and the cache layers along the way — browser, Cloudflare CDN, Valkey with stale-while-revalidate, Apigee and Nitro's cache — with the headers that control them and what happens to cached HTML during deploys.
Cloudflare's cache
What Cloudflare caches by default and what it passes through as DYNAMIC, the CF-Cache-Status values, Cache Rules and edge TTLs, purging, and why HTML belongs at the origin when it has many variants.