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/ |