Q01
Does no-store, max-age=600 allow ten minutes of caching?
No. For this header, no-store prohibits storing or reusing the response. max-age adds no storage permission. To retain that policy while removing an ineffective directive, use no-store.
Parse cache directives and compare browser and shared-cache freshness
Enter one response Cache-Control value per line to inspect freshness lifetimes, storage restrictions, and warnings. Advanced mode includes worked examples.
Response directives alone cannot guarantee storage or a cache hit. Check the method, status, Authorization, Vary, matching entries, and cache implementation. Supply the current response age; this model does not calculate Age/Date or model Expires, heuristic freshness, request directives, offline policies, or every extension.
The full guide also includes pitfalls, worked examples, snippets, FAQs, and related tools for checking results or troubleshooting.
Cache-Control Parser reads one response-header value per line and shows directives, storage restrictions, and freshness signals. Compare public, max-age=60, s-maxage=600: max-age gives browsers a 60-second freshness lifetime, while s-maxage gives shared caches 600 seconds. In no-store, max-age=600, max-age does not grant permission to store or reuse the response; simplify that policy to no-store if storage must remain disabled. Private, no-cache permits private storage subject to other requirements but requires successful validation before reuse. The simulator is an explanation of selected directives, not proof that a browser or CDN will cache a response. It does not model the full request, response status, Authorization, Vary matching, CDN overrides, or the status-dependent must-understand exception. All parsing runs locally in your browser.
no-store
Use when the response must not be stored or reused by caches.
private, no-cache
Use when private storage is acceptable but each reuse must be successfully validated.
Note: These examples use unqualified directives and assume no overriding extension such as the status-dependent must-understand exception. no-store is a cache instruction, not a complete privacy guarantee.
Q01
No. For this header, no-store prohibits storing or reusing the response. max-age adds no storage permission. To retain that policy while removing an ineffective directive, use no-store.
Q02
No. In public, max-age=60, s-maxage=600, the browser freshness lifetime is 60 seconds and the shared-cache lifetime is 600 seconds. Storage eligibility still depends on the rest of the exchange.
Q03
Yes. immutable concerns reuse while a response is fresh; must-revalidate requires successful validation before a stale response is reused. They address different stages and are not inherently contradictory.
Q04
It does not model request methods, response status, Authorization, Vary matching, validators, CDN configuration, Expires or heuristic freshness. It also does not model must-understand, which can let a cache that understands the status-specific requirements ignore no-store. Field-qualified private/no-cache and invalid or duplicate freshness values are reported as UNKNOWN. A header-only result is not proof of a real cache hit.
Cause: A Cache-Control value cannot describe the request, response status, cache key, Authorization handling, or cache configuration.
Fix: Verify the complete exchange and actual cache status. Treat the tool output as directive-level guidance.
Cause: Freshness uses a strict comparison: current age must be less than the freshness lifetime.
Fix: With max-age=60, age 59 is fresh and age 60 is stale. Revalidation and permitted stale reuse must be considered separately.
Cause: Expires or heuristic freshness may supply a lifetime outside this header.
Fix: Report freshness as undetermined from Cache-Control alone and inspect the remaining response headers.
Goal: Remove an ineffective freshness directive without enabling storage.
Result: For the illustrated header, the simplified value no-store preserves the prohibition on storage and reuse.
HTTP
Cache-Control: no-storeHTTP
Cache-Control: public, max-age=60, s-maxage=600HTTP
Cache-Control: private, no-cacheIn no-store, max-age=600, no-store prohibits storing and reusing the response; max-age does not override it. Preserve that restriction when cleaning up the header: use no-store. The status-dependent must-understand exception is outside this simulator.
Yes. With public, max-age=60, s-maxage=600, browsers use a 60-second freshness lifetime and shared caches use 600 seconds. These are separate scopes, not conflicting TTL values.
The unqualified private directive excludes shared-cache storage. A private cache may store the response when other requirements are met, but no-cache requires successful validation before every reuse. It does not mean no storage.
No. Storage and reuse also depend on the request method, status, Authorization, Vary, validators, cache implementation and configuration. must-understand can override no-store in specific status-aware caches; that exception is not simulated.
It compares a supplied age against an explicit freshness lifetime: fresh means age is strictly less than that lifetime. At the lifetime boundary the response is stale. Without a usable max-age or s-maxage value, the tool cannot determine freshness from this header alone; it does not calculate Expires or heuristic freshness.
Yes. Each line is analyzed independently as one Cache-Control response value; lines are not merged into one response. Parsing stays in your browser.
Keep browsing