Keep the promise within freshness
02A fresh immutable response can skip ordinary reload revalidation. Expiry or an explicit user override changes that decision.
Separate example at age 600: a force reload overrides the advice to skip validation even though the response is fresh. Reload is not always a force reload.
Source for this drawing: RFC 8246 · Read RFC section 2 ↗
New to this? Start hereA quick picture + helpful background
A message needs an address.
Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
- Freshness lifetime
- How long a stored response can be treated as fresh.
- Current age
- HTTP’s calculated age of a stored response.
- Conditional request
- A request asking whether a stored representation is still valid.
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
Freshness limits the promise.
- Clients SHOULD NOT send a conditional request for an immutable response during its freshness lifetime, for example on reload, unless the user explicitly overrides that behavior.
- The directive applies only while the stored response is fresh. Stale responses SHOULD be revalidated as they normally would without immutable.
- The worked example uses max-age=3600 seconds and a precomputed current_age. Under RFC9111§4.2, fresh means freshness_lifetime > current_age; equality is no longer fresh.
The timeline uses a simplified, already calculated response age, not elapsed time since a browser tab opened. Actual HTTP age calculation accounts for response dates and transit/cache residence. Stale handling follows ordinary caching rules; immutable supplies no new stale-use permission. The force-reload state is a separate example back at age 600, not a backward-running clock.
Read the RFC section ↗