Let a proxy answer from its fresh cache
04An intermediary can use immutable too, while client validation signals still matter.
Separate request: Cache-Control: no-cache requests validation. The proxy does not apply immutable’s skip advice; here it validates with the origin, receives 304 and answers the client.
Source for this drawing: RFC 8246 · Read RFC section 2.1 ↗
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
- Proxy
- An intermediary that can receive requests and store responses.
- ETag
- An HTTP representation validator, shown as an example tag.
- 304
- Not Modified: a conditional response without the representation body.
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
Skipping the origin does not require one response status.
- Proxies SHOULD skip conditional revalidation of fresh immutable responses unless the client signals that validation is necessary, for example with a no-cache request directive.
- A proxy bypassing conditional revalidation can return 304 or 200 depending on the request headers it received. Immutable does not require every cache hit to be304.
- The example proxy stores a fresh 200 response with ETag "v1". For a matching If-None-Match request, it returns304 locally; an ordinary nonconditional GET can receive 200 with the stored content.
The no-cache branch is a separate example with a client validation signal, not a consequence of the prior local304. Its illustrative unchanged-origin result is304, not a guarantee that validation always finds unchanged content. Shared-cache eligibility, validators and conditional evaluation still follow ordinary HTTP rules (RFC9111§§4.3.2,5.2.1.4). no-cache does not mean no-store.
Read the RFC section ↗