rfc9111v12.txt   rfc9111.txt 
Internet Engineering Task Force (IETF) R. Fielding, Ed. Internet Engineering Task Force (IETF) R. Fielding, Ed.
Request for Comments: 9111 Adobe Request for Comments: 9111 Adobe
STD: 97 M. Nottingham, Ed. STD: 98 M. Nottingham, Ed.
Obsoletes: 7234 Fastly Obsoletes: 7234 Fastly
Category: Standards Track J. Reschke, Ed. Category: Standards Track J. Reschke, Ed.
ISSN: 2070-1721 greenbytes ISSN: 2070-1721 greenbytes
April 2022 June 2022
HTTP Caching HTTP Caching
Abstract Abstract
The Hypertext Transfer Protocol (HTTP) is a stateless application- The Hypertext Transfer Protocol (HTTP) is a stateless application-
level protocol for distributed, collaborative, hypertext information level protocol for distributed, collaborative, hypertext information
systems. This document defines HTTP caches and the associated header systems. This document defines HTTP caches and the associated header
fields that control cache behavior or indicate cacheable response fields that control cache behavior or indicate cacheable response
messages. messages.
skipping to change at line 476 skipping to change at line 476
* the presented target URI (Section 7.1 of [HTTP]) and that of the * the presented target URI (Section 7.1 of [HTTP]) and that of the
stored response match, and stored response match, and
* the request method associated with the stored response allows it * the request method associated with the stored response allows it
to be used for the presented request, and to be used for the presented request, and
* request header fields nominated by the stored response (if any) * request header fields nominated by the stored response (if any)
match those presented (see Section 4.1), and match those presented (see Section 4.1), and
* the stored response does not contain the no-cache cache directive * the stored response does not contain the no-cache directive
(Section 5.2.2.4), unless it is successfully validated (Section 5.2.2.4), unless it is successfully validated
(Section 4.3), and (Section 4.3), and
* the stored response is one of the following: * the stored response is one of the following:
- fresh (see Section 4.2), or - fresh (see Section 4.2), or
- allowed to be served stale (see Section 4.2.4), or - allowed to be served stale (see Section 4.2.4), or
- successfully validated (see Section 4.3). - successfully validated (see Section 4.3).
skipping to change at line 1643 skipping to change at line 1643
The change controller for the following registrations is: "IETF The change controller for the following registrations is: "IETF
(iesg@ietf.org) - Internet Engineering Task Force". (iesg@ietf.org) - Internet Engineering Task Force".
8.1. Field Name Registration 8.1. Field Name Registration
IANA has updated the "Hypertext Transfer Protocol (HTTP) Field Name IANA has updated the "Hypertext Transfer Protocol (HTTP) Field Name
Registry" at <https://www.iana.org/assignments/http-fields>, as Registry" at <https://www.iana.org/assignments/http-fields>, as
described in Section 18.4 of [HTTP], with the field names listed in described in Section 18.4 of [HTTP], with the field names listed in
the table below: the table below:
+===============+============+======+==========+ +===============+============+=========+==========+
| Field Name | Status | Ref. | Comments | | Field Name | Status | Section | Comments |
+===============+============+======+==========+ +===============+============+=========+==========+
| Age | permanent | 5.1 | | | Age | permanent | 5.1 | |
+---------------+------------+------+----------+ +---------------+------------+---------+----------+
| Cache-Control | permanent | 5.2 | | | Cache-Control | permanent | 5.2 | |
+---------------+------------+------+----------+ +---------------+------------+---------+----------+
| Expires | permanent | 5.3 | | | Expires | permanent | 5.3 | |
+---------------+------------+------+----------+ +---------------+------------+---------+----------+
| Pragma | deprecated | 5.4 | | | Pragma | deprecated | 5.4 | |
+---------------+------------+------+----------+ +---------------+------------+---------+----------+
| Warning | obsoleted | 5.5 | | | Warning | obsoleted | 5.5 | |
+---------------+------------+------+----------+ +---------------+------------+---------+----------+
Table 1 Table 1
8.2. Cache Directive Registration 8.2. Cache Directive Registration
IANA has updated the "Hypertext Transfer Protocol (HTTP) Cache IANA has updated the "Hypertext Transfer Protocol (HTTP) Cache
Directive Registry" at <https://www.iana.org/assignments/http-cache- Directive Registry" at <https://www.iana.org/assignments/http-cache-
directives> with the registration procedure per Section 5.2.4 and the directives> with the registration procedure per Section 5.2.4 and the
cache directive names summarized in the table below. cache directive names summarized in the table below.
+==================+==================================+ +==================+==================+
| Cache Directive | Reference | | Cache Directive | Section |
+==================+==================================+ +==================+==================+
| max-age | Section 5.2.1.1, Section 5.2.2.1 | | max-age | 5.2.1.1, 5.2.2.1 |
+------------------+----------------------------------+ +------------------+------------------+
| max-stale | Section 5.2.1.2 | | max-stale | 5.2.1.2 |
+------------------+----------------------------------+ +------------------+------------------+
| min-fresh | Section 5.2.1.3 | | min-fresh | 5.2.1.3 |
+------------------+----------------------------------+ +------------------+------------------+
| must-revalidate | Section 5.2.2.2 | | must-revalidate | 5.2.2.2 |
+------------------+----------------------------------+ +------------------+------------------+
| must-understand | Section 5.2.2.3 | | must-understand | 5.2.2.3 |
+------------------+----------------------------------+ +------------------+------------------+
| no-cache | Section 5.2.1.4, Section 5.2.2.4 | | no-cache | 5.2.1.4, 5.2.2.4 |
+------------------+----------------------------------+ +------------------+------------------+
| no-store | Section 5.2.1.5, Section 5.2.2.5 | | no-store | 5.2.1.5, 5.2.2.5 |
+------------------+----------------------------------+ +------------------+------------------+
| no-transform | Section 5.2.1.6, Section 5.2.2.6 | | no-transform | 5.2.1.6, 5.2.2.6 |
+------------------+----------------------------------+ +------------------+------------------+
| only-if-cached | Section 5.2.1.7 | | only-if-cached | 5.2.1.7 |
+------------------+----------------------------------+ +------------------+------------------+
| private | Section 5.2.2.7 | | private | 5.2.2.7 |
+------------------+----------------------------------+ +------------------+------------------+
| proxy-revalidate | Section 5.2.2.8 | | proxy-revalidate | 5.2.2.8 |
+------------------+----------------------------------+ +------------------+------------------+
| public | Section 5.2.2.9 | | public | 5.2.2.9 |
+------------------+----------------------------------+ +------------------+------------------+
| s-maxage | Section 5.2.2.10 | | s-maxage | 5.2.2.10 |
+------------------+----------------------------------+ +------------------+------------------+
Table 2 Table 2
8.3. Warn Code Registry 8.3. Warn Code Registry
IANA has added the following note to the "Hypertext Transfer Protocol IANA has added the following note to the "Hypertext Transfer Protocol
(HTTP) Warn Codes" registry at <https://www.iana.org/assignments/ (HTTP) Warn Codes" registry at <https://www.iana.org/assignments/
http-warn-codes> stating that "Warning" has been obsoleted: http-warn-codes> stating that "Warning" has been obsoleted:
| The Warning header field (and the warn codes that it uses) has | The Warning header field (and the warn codes that it uses) has
| been obsoleted for HTTP per [RFC9111]. | been obsoleted for HTTP per [RFC9111].
9. References 9. References
9.1. Normative References 9.1. Normative References
[HTTP] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, [HTTP] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP Semantics", RFC 9110, DOI 10.17487/RFC9110, Ed., "HTTP Semantics", STD 97, RFC 9110,
April 2022, <https://www.rfc-editor.org/info/rfc9110>. DOI 10.17487/RFC9110, June 2022,
<https://www.rfc-editor.org/info/rfc9110>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", STD 68, RFC 5234, Specifications: ABNF", STD 68, RFC 5234,
DOI 10.17487/RFC5234, January 2008, DOI 10.17487/RFC5234, January 2008,
<https://www.rfc-editor.org/info/rfc5234>. <https://www.rfc-editor.org/info/rfc5234>.
skipping to change at line 1740 skipping to change at line 1741
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
9.2. Informative References 9.2. Informative References
[COOKIE] Barth, A., "HTTP State Management Mechanism", RFC 6265, [COOKIE] Barth, A., "HTTP State Management Mechanism", RFC 6265,
DOI 10.17487/RFC6265, April 2011, DOI 10.17487/RFC6265, April 2011,
<https://www.rfc-editor.org/info/rfc6265>. <https://www.rfc-editor.org/info/rfc6265>.
[HTTP/1.1] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, [HTTP/1.1] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP/1.1", RFC 9112, DOI 10.17487/RFC9112, April Ed., "HTTP/1.1", STD 99, RFC 9112, DOI 10.17487/RFC9112,
2022, <https://www.rfc-editor.org/info/rfc9112>. June 2022, <https://www.rfc-editor.org/info/rfc9112>.
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
Transfer Protocol -- HTTP/1.1", RFC 2616, Transfer Protocol -- HTTP/1.1", RFC 2616,
DOI 10.17487/RFC2616, June 1999, DOI 10.17487/RFC2616, June 1999,
<https://www.rfc-editor.org/info/rfc2616>. <https://www.rfc-editor.org/info/rfc2616>.
[RFC5861] Nottingham, M., "HTTP Cache-Control Extensions for Stale [RFC5861] Nottingham, M., "HTTP Cache-Control Extensions for Stale
Content", RFC 5861, DOI 10.17487/RFC5861, May 2010, Content", RFC 5861, DOI 10.17487/RFC5861, May 2010,
<https://www.rfc-editor.org/info/rfc5861>. <https://www.rfc-editor.org/info/rfc5861>.
skipping to change at line 1835 skipping to change at line 1836
See Appendix "Acknowledgements" of [HTTP], which applies to this See Appendix "Acknowledgements" of [HTTP], which applies to this
document as well. document as well.
Index Index
A C E F G H M N O P S V W A C E F G H M N O P S V W
A A
Age header field Section 5.1
age Section 4.2 age Section 4.2
Age header field *_Section 5.1_*
C C
Cache-Control header field Section 5.2
cache Section 1 cache Section 1
cache key Section 2; Section 2 cache key Section 2; Section 2
Cache-Control header field *_Section 5.2_*
collapsed requests Section 4 collapsed requests Section 4
E E
Expires header field Section 5.3 Expires header field *_Section 5.3_*
explicit expiration time Section 4.2 explicit expiration time Section 4.2
F F
Fields Fields
Age Section 5.1; Section 5.1 Age *_Section 5.1_*; *_Section 5.1_*
Cache-Control Section 5.2 Cache-Control *_Section 5.2_*
Expires Section 5.3; Section 5.3 Expires *_Section 5.3_*; *_Section 5.3_*
Pragma Section 5.4; Section 5.4 Pragma *_Section 5.4_*; *_Section 5.4_*
Warning Section 5.5 Warning *_Section 5.5_*
fresh Section 4.2 fresh Section 4.2
freshness lifetime Section 4.2 freshness lifetime Section 4.2
G G
Grammar Grammar
Age Section 5.1 Age *_Section 5.1_*
Cache-Control Section 5.2 Cache-Control *_Section 5.2_*
DIGIT Section 1.2 DIGIT *_Section 1.2_*
Expires Section 5.3 Expires *_Section 5.3_*
cache-directive Section 5.2 cache-directive *_Section 5.2_*
delta-seconds Section 1.2.2 delta-seconds *_Section 1.2.2_*
H H
Header Fields Header Fields
Age Section 5.1; Section 5.1 Age *_Section 5.1_*; *_Section 5.1_*
Cache-Control Section 5.2 Cache-Control *_Section 5.2_*
Expires Section 5.3; Section 5.3 Expires *_Section 5.3_*; *_Section 5.3_*
Pragma Section 5.4; Section 5.4 Pragma *_Section 5.4_*; *_Section 5.4_*
Warning Section 5.5 Warning *_Section 5.5_*
heuristic expiration time Section 4.2 heuristic expiration time Section 4.2
heuristically cacheable Section 4.2.2 heuristically cacheable Section 4.2.2
M M
max-age (cache directive) Section 5.2.1.1; Section 5.2.2.1 max-age (cache directive) *_Section 5.2.1.1_*;
max-stale (cache directive) Section 5.2.1.2 *_Section 5.2.2.1_*
min-fresh (cache directive) Section 5.2.1.3 max-stale (cache directive) *_Section 5.2.1.2_*
must-revalidate (cache directive) Section 5.2.2.2 min-fresh (cache directive) *_Section 5.2.1.3_*
must-understand (cache directive) Section 5.2.2.3 must-revalidate (cache directive) *_Section 5.2.2.2_*
must-understand (cache directive) *_Section 5.2.2.3_*
N N
no-cache (cache directive) Section 5.2.1.4; Section 5.2.2.4 no-cache (cache directive) *_Section 5.2.1.4_*;
no-store (cache directive) Section 5.2.1.5; Section 5.2.2.5 *_Section 5.2.2.4_*
no-transform (cache directive) Section 5.2.1.6; no-store (cache directive) *_Section 5.2.1.5_*;
Section 5.2.2.6 *_Section 5.2.2.5_*
no-transform (cache directive) *_Section 5.2.1.6_*;
*_Section 5.2.2.6_*
O O
only-if-cached (cache directive) Section 5.2.1.7 only-if-cached (cache directive) *_Section 5.2.1.7_*
P P
Pragma header field Section 5.4 Pragma header field *_Section 5.4_*
private (cache directive) Section 5.2.2.7 private (cache directive) *_Section 5.2.2.7_*
private cache Section 1 private cache Section 1
proxy-revalidate (cache directive) Section 5.2.2.8 proxy-revalidate (cache directive) *_Section 5.2.2.8_*
public (cache directive) Section 5.2.2.9 public (cache directive) *_Section 5.2.2.9_*
S S
s-maxage (cache directive) Section 5.2.2.10 s-maxage (cache directive) *_Section 5.2.2.10_*
shared cache Section 1 shared cache Section 1
stale Section 4.2 stale Section 4.2
V V
validator Section 4.3.1 validator Section 4.3.1
W W
Warning header field Section 5.5 Warning header field *_Section 5.5_*
Authors' Addresses Authors' Addresses
Roy T. Fielding (editor) Roy T. Fielding (editor)
Adobe Adobe
345 Park Ave 345 Park Ave
San Jose, CA 95110 San Jose, CA 95110
United States of America United States of America
Email: fielding@gbiv.com Email: fielding@gbiv.com
URI: https://roy.gbiv.com/ URI: https://roy.gbiv.com/
 End of changes. 24 change blocks. 
86 lines changed or deleted 90 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/