Applies to: Protocol and format interpretation for developers inspecting authorized media delivery.
The useful distinctions
- max-age expresses a freshness lifetime in seconds.
- s-maxage applies to shared caches.
- An unqualified private directive prohibits shared-cache storage.
Draw two timelines instead of one
A cache on a viewer's device and a shared intermediary serve different sets of requests. A useful policy review therefore tracks them separately even when they receive the same response. In the synthetic example, the chosen values intentionally give the shared cache a shorter reuse window. Mark zero at the response's age origin, place a shared boundary at 15 seconds, and place a private boundary at 45 seconds. This makes the policy's intent easy to discuss.
Do not equate freshness with delivery speed
The numbers describe when a stored response can be reused under the policy, not how many seconds a video will buffer or how quickly a transfer completes. Other cache rules and validators still matter when a boundary is reached. For personalized resources, decide whether shared storage is appropriate before tuning a shared lifetime. A short shared lifetime is not equivalent to a prohibition on shared storage. If reviewing an actual deployment, compare the policy with the response's audience and observed cache behavior. The example supplies an arithmetic model only; it is not a recommendation for a live service's manifest update interval. At an assumed age of twenty seconds, the two timelines have crossed different boundaries. The private lifetime still has twenty-five seconds remaining, while the shared freshness allowance has already been consumed.
Worked example · synthetic
The two policy boundaries are 15 and 45 seconds. This example deliberately omits private because that directive would prohibit the shared storage being compared.
Synthetic text example; no network operation has been performed.
HTTP/MIME line endings are CRLF. Request URL context, where labelled, is commentary rather than a wire field. No message was transmitted.
HTTP/1.1 200 OK
Date: Sun, 08 Nov 2026 08:00:00 GMT
Cache-Control: max-age=45, s-maxage=15
Content-Length: 0
Check the interpretation
- Identify the cache's role before selecting a lifetime.
- Do not read seconds as media duration.
- Check whether the audience permits shared storage.