Read the response directive
03Immutable is a Cache-Control response extension with no meaningful arguments; putting it in a request has no effect.
A request containing Cache-Control: immutable has no effect from that extension. It is not a response and does not establish freshness.
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
- Cache-Control
- The HTTP field carrying cache directives.
- Directive
- One instruction or extension within Cache-Control.
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
Immutable is a response promise, not a requested guarantee.
- The RFC example is Cache-Control: max-age=31536000, immutable. The freshness lifetime comes from max-age, not from immutable itself.
- The extension takes no arguments. Any arguments have no meaning and MUST be ignored. Multiple instances are equivalent to one instance.
- An immutable directive in a request has no effect. It cannot force a server to make mutable content immutable or grant a new freshness lifetime.
Only arguments to immutable are ignored; do not discard unrelated Cache-Control directives. The 31536000 second value is the RFC example, not a required duration. The illustrative extra argument example is not recommended authoring. A cache that does not understand an extension follows normal extension handling; no universal support is promised.
Read the RFC section ↗