Dated record
Research history
A compact trail of what changed in the answer, with earlier reports kept available for comparison.
Dated findings
-
16 Sep 2026 · dated baseline
HTTP caching basics: freshness, validation, and safe storage
Established the standards-grounded baseline for freshness and reuse, stale responses, conditional validation, private versus shared storage, and common
Cache-Controlmistakes. The dated report path is retained for continuity. -
16 Sep 2026 · focused follow-up
ETag versus Last-Modified
Added the validator comparison and precedence rule:
If-None-Matchwins; a nonmatching ETag does not fall back toLast-Modified. The outcomes are expected rather than live-captured because the test environment lackedcurl. -
16 Sep 2026 · focused follow-up
Cache-key & privacy mismatch
Added the adversarial worksheet for query values,
Vary, cookies,Set-Cookie, andAuthorization, plus a separate local key/match model. No live shared-cache measurement is claimed. -
16 Sep 2026 · focused follow-up
Locating the serving layer
Added the layer-boundary comparison, expected A/B outcome matrix, reader decision tree, diagnostic checklist, and explicit limits for browser cache, service worker/Cache API, history/bfcache, intermediary, and origin attribution. No live shared-cache capture is claimed.
-
17 Sep 2026 · focused follow-up
CloudFront TTL policy and invalidation
The preserved CloudFront research entry now carries the completed 19 Sep audit refresh: it tightens the standalone
s-maxagegap, viewer-only response-header boundary, effective cache-key invalidation scope, rewrite-stage limits, and Completed-status evidence. No live CloudFront measurement or invalidation was performed. -
20 Sep 2026 · focused follow-up
Cloudflare Cache Rules and Origin Cache Control
Added the documentation-grounded Cloudflare case: OCC and Cache Rule edge precedence, separate Browser TTL, cache-key identity, purge scopes, a matched CloudFront crosswalk, and an authorized-only verification template. No zone response, live measurement, or purge was available.