Visual RFC.
ALL RFCs / RFC 9111
Read the RFC ↗
RFC 9111 / CACHE DECISIONS

Freshness and age

02

A response is fresh when its freshness lifetime exceeds its current age, after accounting for transit and time in caches.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

DIAGRAM§ 4.2 ↗
RFC 9111 · § 4.2EXAMPLE
3 / 3
Freshness and ageA 60-second freshness budget is compared with a corrected initial age of 10 seconds and residence of 20 seconds, leaving 30 seconds.Freshness is lifetime minus current ageIllustrative age calculation in secondsmax-age=60 → lifetime 60 s060 s1020current age = 10 + 20 = 30 s30 s remaining30 < 60 → freshAt age 60, the response is no longer freshCompare age with lifetime, then check other policies
03
Apply the freshness comparison.

Thirty seconds remain in this example; all other reuse restrictions must still be satisfied.

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
KEY POINT

Compare lifetime to age, not just local storage time.

  • For a shared cache, s-maxage takes priority over max-age; otherwise max-age precedes Expires minus Date.
  • Age accounts for prior cache residence and network transit, not only time since this cache stored the response.
  • In the example, max-age=60, corrected initial age=10, and residence=20 give current age=30: still fresh.
DETAILS

The example assumes the initial age was already correctly calculated. At current age 60, a lifetime of 60 is no longer fresh. Missing explicit freshness may allow constrained heuristic freshness; it does not imply unlimited reuse.

Read the RFC section ↗

Diagrams simplify the RFC. Read the linked sections for complete requirements.

Privacy
All chapters in this RFC
  1. Store and select a response
  2. Freshness and age
  3. Revalidate with 304
  4. Cache-Control directives
  5. Private and shared caches
  6. Stale responses and invalidation
RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗