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: September 11, 2024 Akamai
July 2, 2018 March 10, 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 September 11, 2024.
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/