HTTP Cache Mismatch
Analyze cache-related headers across layers. No input is sent to a server. Use it for first-pass revalidation and CDN mismatch troubleshooting.
Status
Runs in your browser. No input is sent to a server. Use this as a first-pass diagnostic step.
How to use
Paste request/response headers and click “Diagnose”. Split with a blank line (request → response).
Notes (this tool)
- Intermediary cache behavior (CDN/proxy) depends on local rules, so real captured headers are essential.
- Multiple causes often overlap. Fix one item at a time and observe again.
About this page
What does this tool do?
Compares cache-related headers between request and response to find likely causes.
Debugging workflow (recommended)
- Paste request/response headers
- Review likely causes
- Use Cache Diagnostic for deeper analysis
Recommendations by use case
- API (JSON): no-store or no-cache + validators
- HTML: short max-age + validators / no-cache
- Static assets: long max-age + immutable + versioned URL
Related tools
- Cache Response Analyzer
- Cache Diagnostic
- Cache-Control Inspect
- Vary Inspect
What this tool does
- List likely cache mismatch causes
- Detect forced revalidation in requests
Operational notes
- Cache behavior changes across browser, CDN, and proxy layers, so compare captures from the same observation point.
- Header-only diagnosis may be insufficient. Also review application cache invalidation strategy and key design.
Referenced specs
- RFC 9111 (HTTP Caching)
- RFC 9110 (HTTP Semantics)
FAQ
What is the fastest check when production and staging differ?
Compare Cache-Control, Vary, Age, and ETag at the same time and same URL across environments.
Why does only CDN return stale responses?
Typical causes include s-maxage policy, missed purges, Vary branching, and edge compression differences.
References
Page-specific case studies
Use this page when the same resource behaves differently across environments and you need header-based diffing.
- Compare Cache-Control and Vary between production and staging.
- Inspect CDN-added Age, Via, and X-Cache style headers.
- Check whether ETag changes unexpectedly across compressed variants.
Page-specific implementation checklist
- Keep diff targets aligned by time, URL, and method.
- Record impact scope, not only whether a diff exists.
- Minimize Vary keys to control cache branch explosion.
- Automate header-diff checks in deployment pipelines.
Next to view (diagnostic order)
These links are generated from site_map rules in recommended diagnostic order.
- Cache Not Working Troubleshooting — Troubleshoot cache-not-working symptoms step by step from headers
- Cache Response Analyzer — Judge cacheability from response headers
- Cache Diagnostic — Run cross-header diagnostics for HTTP caching
- How to Diagnose Stale Content After Deployment — Check cache policy by HTML/API/static assets to isolate stale deployment issues quickly
- How to choose cache tools — Route stale-update, missing-304, and CDN-only mismatch issues to the right tools
- Cache Key Inspect — Visualize cache-key splits from URL, Vary, and headers
- Cache Control Overview — Summarize how to use Cache-Control/Pragma/Expires together
- Cache-Control Inspect — Parse and interpret Cache-Control directives
Same-theme links
Cache Control
Diagnose delivery policy across Cache-Control/Expires/Age
- Cache Not Working Troubleshooting — Troubleshoot cache-not-working symptoms step by step from headers
- Cache Response Analyzer — Judge cacheability from response headers
- Cache Key Inspect — Visualize cache-key splits from URL, Vary, and headers
- Cache Diagnostic — Run cross-header diagnostics for HTTP caching
- Cache Control Overview — Summarize how to use Cache-Control/Pragma/Expires together
- Cache-Control Inspect — Parse and interpret Cache-Control directives
- Pragma Cache Inspect — Parse Pragma and inspect legacy cache control behavior
- Expires Inspect — Parse Expires and Date to inspect freshness behavior
- Age Inspect — Parse Age to estimate shared-cache residency time