Keep recovery and corruption safeguards
05Skipping validation can amplify cache corruption. Three recommendations keep immutable from becoming an unconditional pin.
Separate close-delimited response example: the stored body lacks a strong size indication. Clients SHOULD ignore immutable; the directive does not certify completeness.
Source for this drawing: RFC 8246 · Read RFC section 3 ↗
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
- Cache poisoning
- An attacker or failure causes incorrect bytes to be stored in a cache.
- Authenticated context
- A context such as HTTPS that protects the peer/transport exchange.
- Close-delimited
- A response whose end is indicated by closing the connection.
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
A cache promise is not proof that cached bytes are sound.
- Clients SHOULD ignore immutable for resources outside an authenticated context such as HTTPS. This mitigates cache-poisoning risk; it is not a general ban on HTTP caching.
- Force reloads used to repair interrupted or corrupted loads, typically signaled with no-cache, SHOULD ignore immutable as well.
- Clients SHOULD ignore immutable when there is no strong indication that stored response size is correct, such as a response delimited by connection close.
These are SHOULD recommendations, not invented MUST rejection rules. The gate ignores the immutable extension, not the entire response: ordinary caching and security rules still apply. HTTPS helps authenticate the transport context but does not prove that content is correct, malware-free or properly authorized. No particular body-length proof or corruption-repair algorithm is mandated.
Read the RFC section ↗