draft-ietf-httpbis-cache-digest-05.txt | draft-ietf-httpbis-cache-digest-latest.txt | |||
---|---|---|---|---|
HTTP Working Group K. Oku | HTTP Working Group K. Oku | |||
Internet-Draft Fastly | Internet-Draft Fastly | |||
Intended status: Experimental Y. Weiss | Intended status: Experimental Y. Weiss | |||
Expires: January 3, 2019 Akamai | Expires: February 23, 2025 Akamai | |||
July 2, 2018 | August 22, 2024 | |||
Cache Digests for HTTP/2 | Cache Digests for HTTP/2 | |||
draft-ietf-httpbis-cache-digest-05 | draft-ietf-httpbis-cache-digest-latest | |||
Abstract | Abstract | |||
This specification defines a HTTP/2 frame type to allow clients to | This specification defines a HTTP/2 frame type to allow clients to | |||
inform the server of their cache's contents. Servers can then use | inform the server of their cache's contents. Servers can then use | |||
this to inform their choices of what to push to clients. | this to inform their choices of what to push to clients. | |||
Note to Readers | Note to Readers | |||
Discussion of this draft takes place on the HTTP working group | Discussion of this draft takes place on the HTTP working group | |||
skipping to change at page 1, line 43 ¶ | skipping to change at page 1, line 43 ¶ | |||
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 January 3, 2019. | This Internet-Draft will expire on February 23, 2025. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2024 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 | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Notational Conventions . . . . . . . . . . . . . . . . . 3 | 1.1. Notational Conventions . . . . . . . . . . . . . . . . . 3 | |||
2. The CACHE_DIGEST Frame . . . . . . . . . . . . . . . . . . . 3 | 2. The CACHE_DIGEST Frame . . . . . . . . . . . . . . . . . . . 3 | |||
2.1. Client Behavior . . . . . . . . . . . . . . . . . . . . . 4 | 2.1. Client Behavior . . . . . . . . . . . . . . . . . . . . . 4 | |||
2.1.1. Creating a digest . . . . . . . . . . . . . . . . . . 4 | 2.1.1. Creating a digest . . . . . . . . . . . . . . . . . . 5 | |||
2.1.2. Adding a URL to the Digest-Value . . . . . . . . . . 5 | 2.1.2. Adding a URL to the Digest-Value . . . . . . . . . . 5 | |||
2.1.3. Removing a URL to the Digest-Value . . . . . . . . . 7 | 2.1.3. Removing a URL to the Digest-Value . . . . . . . . . 7 | |||
2.1.4. Computing a fingerprint value . . . . . . . . . . . . 8 | 2.1.4. Computing a fingerprint value . . . . . . . . . . . . 8 | |||
2.1.5. Computing the key . . . . . . . . . . . . . . . . . . 9 | 2.1.5. Computing the key . . . . . . . . . . . . . . . . . . 9 | |||
2.1.6. Computing a Hash Value . . . . . . . . . . . . . . . 9 | 2.1.6. Computing a Hash Value . . . . . . . . . . . . . . . 9 | |||
2.1.7. Computing an Alternative Hash Value . . . . . . . . . 9 | 2.1.7. Computing an Alternative Hash Value . . . . . . . . . 9 | |||
2.2. Server Behavior . . . . . . . . . . . . . . . . . . . . . 10 | 2.2. Server Behavior . . . . . . . . . . . . . . . . . . . . . 10 | |||
2.2.1. Querying the Digest for a Value . . . . . . . . . . . 10 | 2.2.1. Querying the Digest for a Value . . . . . . . . . . . 10 | |||
3. The SETTINGS_SENDING_CACHE_DIGEST SETTINGS Parameter . . . . 11 | 3. The SETTINGS_SENDING_CACHE_DIGEST SETTINGS Parameter . . . . 11 | |||
4. The SETTINGS_ACCEPT_CACHE_DIGEST SETTINGS Parameter . . . . . 12 | 4. The SETTINGS_ACCEPT_CACHE_DIGEST SETTINGS Parameter . . . . . 12 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 13 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 14 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 14 | 7.2. Informative References . . . . . . . . . . . . . . . . . 14 | |||
7.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 7.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
Appendix A. Encoding the CACHE_DIGEST frame as an HTTP Header . 15 | Appendix A. Encoding the CACHE_DIGEST frame as an HTTP Header . 15 | |||
Appendix B. Changes . . . . . . . . . . . . . . . . . . . . . . 16 | Appendix B. Changes . . . . . . . . . . . . . . . . . . . . . . 16 | |||
B.1. Since draft-ietf-httpbis-cache-digest-04 . . . . . . . . 16 | B.1. Since draft-ietf-httpbis-cache-digest-05 . . . . . . . . 16 | |||
B.2. Since draft-ietf-httpbis-cache-digest-03 . . . . . . . . 16 | B.2. Since draft-ietf-httpbis-cache-digest-04 . . . . . . . . 17 | |||
B.3. Since draft-ietf-httpbis-cache-digest-02 . . . . . . . . 17 | B.3. Since draft-ietf-httpbis-cache-digest-03 . . . . . . . . 17 | |||
B.4. Since draft-ietf-httpbis-cache-digest-01 . . . . . . . . 17 | B.4. Since draft-ietf-httpbis-cache-digest-02 . . . . . . . . 17 | |||
B.5. Since draft-ietf-httpbis-cache-digest-00 . . . . . . . . 17 | B.5. Since draft-ietf-httpbis-cache-digest-01 . . . . . . . . 17 | |||
Appendix C. Acknowledgements . . . . . . . . . . . . . . . . . . 17 | B.6. Since draft-ietf-httpbis-cache-digest-00 . . . . . . . . 17 | |||
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 17 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
1. Introduction | 1. Introduction | |||
HTTP/2 [RFC7540] allows a server to "push" synthetic request/response | HTTP/2 [RFC7540] allows a server to "push" synthetic request/response | |||
pairs into a client's cache optimistically. While there is strong | pairs into a client's cache optimistically. While there is strong | |||
interest in using this facility to improve perceived Web browsing | interest in using this facility to improve perceived Web browsing | |||
performance, it is sometimes counterproductive because the client | performance, it is sometimes counterproductive because the client | |||
might already have cached the "pushed" response. | might already have cached the "pushed" response. | |||
skipping to change at page 16, line 42 ¶ | skipping to change at page 16, line 46 ¶ | |||
transmitted using a single HTTP/2 connection. | transmitted using a single HTTP/2 connection. | |||
Also, due to the fact that any header that is supplied to Fetch is | Also, due to the fact that any header that is supplied to Fetch is | |||
required to be end-to-end, there is an ambiguity in what a Cache- | required to be end-to-end, there is an ambiguity in what a Cache- | |||
Digest header respresents when a request is transmitted through a | Digest header respresents when a request is transmitted through a | |||
proxy. The header may represent the cache state of a client or that | proxy. The header may represent the cache state of a client or that | |||
of a proxy, depending on how the proxy handles the header. | of a proxy, depending on how the proxy handles the header. | |||
Appendix B. Changes | Appendix B. Changes | |||
B.1. Since draft-ietf-httpbis-cache-digest-04 | B.1. Since draft-ietf-httpbis-cache-digest-05 | |||
o None yet. | ||||
B.2. Since draft-ietf-httpbis-cache-digest-04 | ||||
o Remove ETag from the digest key calculations. | o Remove ETag from the digest key calculations. | |||
o Add SETTINGS_ prefix to parameter names. | o Add SETTINGS_ prefix to parameter names. | |||
B.2. Since draft-ietf-httpbis-cache-digest-03 | B.3. Since draft-ietf-httpbis-cache-digest-03 | |||
o Yoav becomes an author; Mark steps down. | o Yoav becomes an author; Mark steps down. | |||
B.3. Since draft-ietf-httpbis-cache-digest-02 | B.4. Since draft-ietf-httpbis-cache-digest-02 | |||
o Switch to Cuckoo Filter. | o Switch to Cuckoo Filter. | |||
B.4. Since draft-ietf-httpbis-cache-digest-01 | B.5. Since draft-ietf-httpbis-cache-digest-01 | |||
o Added definition of the Cache-Digest header. | o Added definition of the Cache-Digest header. | |||
o Introduce ACCEPT_CACHE_DIGEST SETTINGS parameter. | o Introduce ACCEPT_CACHE_DIGEST SETTINGS parameter. | |||
o Change intended status from Standard to Experimental. | o Change intended status from Standard to Experimental. | |||
B.5. Since draft-ietf-httpbis-cache-digest-00 | B.6. Since draft-ietf-httpbis-cache-digest-00 | |||
o Make the scope of a digest frame explicit and shift to stream 0. | o Make the scope of a digest frame explicit and shift to stream 0. | |||
Appendix C. Acknowledgements | Acknowledgements | |||
+{:numbered="false"} | ||||
Thanks to Stefan Eissing for his suggestions. | Thanks to Stefan Eissing for his suggestions. | |||
Authors' Addresses | Authors' Addresses | |||
Kazuho Oku | Kazuho Oku | |||
Fastly | Fastly | |||
Email: kazuhooku@gmail.com | Email: kazuhooku@gmail.com | |||
End of changes. 14 change blocks. | ||||
22 lines changed or deleted | 25 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/ |