draft-ietf-httpbis-cache-groups-02.txt | draft-ietf-httpbis-cache-groups-latest.txt | |||
---|---|---|---|---|
Network Working Group M. Nottingham | HTTP Working Group M. Nottingham | |||
Internet-Draft June 17, 2024 | Internet-Draft February 20, 2025 | |||
Intended status: Standards Track | Intended status: Standards Track | |||
Expires: December 19, 2024 | Expires: August 24, 2025 | |||
HTTP Cache Groups | HTTP Cache Groups | |||
draft-ietf-httpbis-cache-groups-02 | draft-ietf-httpbis-cache-groups-latest | |||
Abstract | Abstract | |||
This specification introduces a means of describing the relationships | This specification introduces a means of describing the relationships | |||
between stored responses in HTTP caches, "grouping" them by | between stored responses in HTTP caches, "grouping" them by | |||
associating a stored response with one or more opaque strings. | associating a stored response with one or more opaque strings. | |||
About This Document | About This Document | |||
This note is to be removed before publishing as an RFC. | This note is to be removed before publishing as an RFC. | |||
skipping to change at page 1, line 47 ¶ | skipping to change at page 1, line 47 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on December 19, 2024. | This Internet-Draft will expire on August 24, 2025. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2025 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
skipping to change at page 3, line 18 ¶ | skipping to change at page 3, line 18 ¶ | |||
indicated by grouping can also be used by caches to optimise their | indicated by grouping can also be used by caches to optimise their | |||
operation; for example, it could be used to inform the operation of | operation; for example, it could be used to inform the operation of | |||
cache eviction algorithms. | cache eviction algorithms. | |||
Section 2 introduces a means of describing the relationships between | Section 2 introduces a means of describing the relationships between | |||
a set of stored responses in HTTP caches by associating them with one | a set of stored responses in HTTP caches by associating them with one | |||
or more opaque strings. It also describes how caches can use that | or more opaque strings. It also describes how caches can use that | |||
information to apply invalidation events to members of a group. | information to apply invalidation events to members of a group. | |||
Section 3 introduces one new source of such events: a HTTP response | Section 3 introduces one new source of such events: a HTTP response | |||
header that allows a state-changing response to trigger a group | header field that allows a state-changing response to trigger a group | |||
invalidation. | invalidation. | |||
These mechanisms operate within a single cache, across the stored | These mechanisms operate within a single cache, across the stored | |||
responses associated with a single origin server. They do not | responses associated with a single origin server. They do not | |||
address this issues of synchronising state between multiple caches | address this issues of synchronising state between multiple caches | |||
(e.g., in a hierarchy or mesh), nor do they facilitate association of | (e.g., in a hierarchy or mesh), nor do they facilitate association of | |||
stored responses from disparate origins. | stored responses from disparate origins. | |||
1.1. Notational Conventions | 1.1. Notational Conventions | |||
skipping to change at page 4, line 19 ¶ | skipping to change at page 4, line 19 ¶ | |||
2.1. Identifying Grouped Responses | 2.1. Identifying Grouped Responses | |||
Two responses stored in the same cache are considered to have the | Two responses stored in the same cache are considered to have the | |||
same group when all of the following conditions are met: | same group when all of the following conditions are met: | |||
1. They both contain a Cache-Groups response header field that | 1. They both contain a Cache-Groups response header field that | |||
contains the same String (in any position in the List), when | contains the same String (in any position in the List), when | |||
compared character-by-character. | compared character-by-character. | |||
2. The both share the same URI origin (per Section 4.3.1 of [HTTP]). | 2. They both share the same URI origin (per Section 4.3.1 of | |||
[HTTP]). | ||||
2.2. Cache Behaviour | 2.2. Cache Behaviour | |||
2.2.1. Invalidation | 2.2.1. Invalidation | |||
A cache that invalidates a stored response MAY invalidate any stored | A cache that invalidates a stored response MAY invalidate any stored | |||
responses that share groups (per Section 2.1) with that response. | responses that share groups (per Section 2.1) with that response. | |||
Cache extensions can explicitly strengthen the requirement above. | Cache extensions can explicitly strengthen the requirement above. | |||
For example, a targeted cache control header field [TARGETED] might | For example, a targeted cache control header field [TARGETED] might | |||
skipping to change at page 6, line 36 ¶ | skipping to change at page 6, line 36 ¶ | |||
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>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
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>. | |||
[STRUCTURED-FIELDS] | [STRUCTURED-FIELDS] | |||
Nottingham, M. and P. Kamp, "Structured Field Values for | Nottingham, M. and P. Kamp, "Structured Field Values for | |||
HTTP", draft-ietf-httpbis-sfbis-06 (work in progress), | HTTP", RFC 9651, DOI 10.17487/RFC9651, September 2024, | |||
April 2024. | <https://www.rfc-editor.org/info/rfc9651>. | |||
6.2. Informative References | 6.2. Informative References | |||
[TARGETED] | [TARGETED] | |||
Ludin, S., Nottingham, M., and Y. Wu, "Targeted HTTP Cache | Ludin, S., Nottingham, M., and Y. Wu, "Targeted HTTP Cache | |||
Control", RFC 9213, DOI 10.17487/RFC9213, June 2022, | Control", RFC 9213, DOI 10.17487/RFC9213, June 2022, | |||
<https://www.rfc-editor.org/info/rfc9213>. | <https://www.rfc-editor.org/info/rfc9213>. | |||
Appendix A. Acknowledgements | Appendix A. Acknowledgements | |||
End of changes. 8 change blocks. | ||||
10 lines changed or deleted | 11 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/ |