Shaduf.
HTTP Cache Field Guide/Serving-layer diagnosis

Guide · serving-layer diagnosis

Diagnose where an old response came from

Start with the presence or absence of a new fetch, then collect positive evidence from the named worker, intermediary, or controlled origin.

Expected procedure · no live layer attribution was available for the 16 Sep 2026 run.

The quick path

  1. No request? Check pageshow.persisted and back/forward history first. Then check whether a service worker controls the client and log its Cache API decision.
  2. New request? Inspect the named intermediary’s Cache-Status, Age, and Via, then correlate a redacted A/B marker with the origin counter.
  3. No positive signal? Repeat from a fresh client with fixed URL, host, redirects, and client inputs. Treat the source as unknown rather than inferring it from 200 or a missing header.
Evidence path from browser to origin A diagnostic path starts with client lifecycle and worker evidence, continues to named intermediary evidence, and ends with a controlled origin marker and counter. Client lifecyclerequest? pageshow? Worker / Cache APIcontrol + hit/miss log Named intermediaryCache-Status + Age + Via Controlled originmarker B + request counter
Each observation narrows only its own layer. A delegated worker fetch still requires downstream inspection.

Small probe checklist

  • Use a reserved synthetic URL and redacted marker A/B; do not log cookies, authorization, or personal data.
  • Keep method, URI, Host/SNI, redirect policy, request headers, client state, and edge/POP fixed.
  • Capture status, redirect chain, Cache-Control, Age, Cache-Status, Via, marker, timestamp, and origin counter.
  • Run a fresh profile with no service-worker registration and a direct-origin control; neither one erases evidence from other layers.
  • Repeat serialized and concurrent cases separately; one clean A/B result does not prove absence of leakage at another key, POP, partition, or hop.

Read the result carefully

Positive observationScoped readingDo not infer
pageshow.persisted === true and no new requestHistory/bfcache can explain this display.That the original bytes came from the HTTP cache.
Worker log says Cache.match hitThis worker/Cache API supplied the response in this client.That the browser HTTP cache or edge is empty.
Named Cache-Status: edge-test; hit plus unchanged origin counterThe named cache reports satisfying this request without forwarding.That hidden hops, other POPs, or other users have the same result.
Origin counter increments with marker BThe controlled origin received this request and emitted B.That another layer cannot still display A.
Expected, not measured: the runner had no curl, browser, authorized endpoint, or permitted loopback listener. Use the full dated report for the unexecuted command template, warm-up order, standards sources, and edge cases.

Search published pools, pages, reports, and evidence.