- Start with the response’s audience
- Keep performance subordinate to correctness
Start with the response’s audience
Consider two responses from the same publication: a public article and an editor’s page containing private controls. They may use the same template engine and hostname, but they do not have the same audience. A cache policy should follow the data and the authorization boundary, not the convenience of one global header.
List what appears in each response. Personal state, a request token, a draft headline or an administrative action can change the consequences of reuse. Make that inventory before deciding how aggressively to cache.
Storage and reuse are different decisions
Cache-Control: no-store directs caches not to store a response. no-cache permits storage but requires validation before reuse. private excludes shared caches while allowing a private cache to store the response under the applicable rules. These directives solve different problems.
For a sensitive editor response, a conservative no-store policy is easier to reason about than a complex shared-cache exception. For a public resource, a short reuse interval may be appropriate. Neither choice can rescue a response that already leaks private information.
Cookies change the investigation
A route that is normally public may render different information when an editor is signed in. Check the actual authenticated response instead of assuming that the URL alone determines sensitivity. If the template includes owner-only controls or session-related state, a public cache header deserves immediate scrutiny.
Test an anonymous request, an authenticated request and a request with a malformed cookie. Compare the body and response headers. Do not print the cookie value into a test report. The evidence can identify the scenario without exposing a session credential.
Observe every relevant layer
A reverse proxy, CDN and browser can each affect reuse. Write down which layer owns the policy and which headers it preserves. A setting in the application is not proof that the same header reaches the reader through the public route.
Use a fresh request to the actual review hostname. Record the status, relevant cache headers and whether the expected private information is absent. Repeat the test after configuration changes. Avoid relying on a browser reload that may conceal the behavior you are trying to measure.
A small read-only exercise
In the browser’s Network panel, select the document response and inspect Cache-Control. Now sign out of the application, where a real sign-out feature exists, and repeat the request. Explain which differences are expected and why.
This exercise does not require editing cookies, disabling browser protections or exposing a private site publicly. It is an observation of the application’s own responses. Keep screenshots free of credentials, unpublished material and personal information.
Keep performance subordinate to correctness
Caching can reduce repeated work, but serving one person’s private page to another is not a performance optimization. Begin with a correct isolation rule, then measure whether a narrower safe policy is worth its complexity.
Document the decision beside the code and add a regression test. A future redesign should not accidentally turn an authenticated header into a public fragment. The acceptance condition is not merely that the article is fast; it is that only the intended public representation can be reused by a shared cache.
Read beyond this page.
Recorded source-check date: 10 Sep 2026. A link is not, by itself, evidence that every claim has been independently verified.
Changes & version history
Version 3 · 13 Sep 2026
Scheduled release of checksum-bound AI-assisted editorial review
Version 2 · 10 Sep 2026
Checksum-bound editorial review scheduled for release
Version 1 · 10 Sep 2026
Source-linked private review edition
