draft-ietf-httpbis-cache-digest-02.txt   draft-ietf-httpbis-cache-digest-latest.txt 
HTTP Working Group K. Oku HTTP Working Group K. Oku
Internet-Draft DeNA Co, Ltd. Internet-Draft DeNA Co, Ltd.
Intended status: Experimental M. Nottingham Intended status: Experimental M. Nottingham
Expires: December 1, 2017 May 30, 2017 Expires: February 10, 2018 August 9, 2017
Cache Digests for HTTP/2 Cache Digests for HTTP/2
draft-ietf-httpbis-cache-digest-02 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 42 skipping to change at page 1, line 42
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 http://datatracker.ietf.org/drafts/current/. Drafts is at http://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 1, 2017. This Internet-Draft will expire on February 10, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 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
(http://trustee.ietf.org/license-info) in effect on the date of (http://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
skipping to change at page 2, line 34 skipping to change at page 2, line 34
2.2.1. Querying the Digest for a Value . . . . . . . . . . . 7 2.2.1. Querying the Digest for a Value . . . . . . . . . . . 7
3. The ACCEPT_CACHE_DIGEST SETTINGS Parameter . . . . . . . . . 8 3. The ACCEPT_CACHE_DIGEST SETTINGS Parameter . . . . . . . . . 8
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
5. Security Considerations . . . . . . . . . . . . . . . . . . . 10 5. Security Considerations . . . . . . . . . . . . . . . . . . . 10
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1. Normative References . . . . . . . . . . . . . . . . . . 10 6.1. Normative References . . . . . . . . . . . . . . . . . . 10
6.2. Informative References . . . . . . . . . . . . . . . . . 11 6.2. Informative References . . . . . . . . . . . . . . . . . 11
Appendix A. Encoding the CACHE_DIGEST frame as an HTTP Header . 12 Appendix A. Encoding the CACHE_DIGEST frame as an HTTP Header . 12
Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 13 Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 13
Appendix C. Changes . . . . . . . . . . . . . . . . . . . . . . 13 Appendix C. Changes . . . . . . . . . . . . . . . . . . . . . . 13
C.1. Since draft-ietf-httpbis-cache-digest-01 . . . . . . . . 13 C.1. Since draft-ietf-httpbis-cache-digest-02 . . . . . . . . 13
C.2. Since draft-ietf-httpbis-cache-digest-00 . . . . . . . . 13 C.2. Since draft-ietf-httpbis-cache-digest-01 . . . . . . . . 13
C.3. Since draft-ietf-httpbis-cache-digest-00 . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13
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 6, line 43 skipping to change at page 6, line 43
"hash-value" can be computed using the following algorithm: "hash-value" can be computed using the following algorithm:
1. Let "key" be "URL" converted to an ASCII string by percent- 1. Let "key" be "URL" converted to an ASCII string by percent-
encoding as appropriate [RFC3986]. encoding as appropriate [RFC3986].
2. If "validators" is true and "ETag" is not null: 2. If "validators" is true and "ETag" is not null:
1. Append "ETag" to "key" as an ASCII string, including both the 1. Append "ETag" to "key" as an ASCII string, including both the
"weak" indicator (if present) and double quotes, as per "weak" indicator (if present) and double quotes, as per
[RFC7232] Section 2.3. [RFC7232], Section 2.3.
3. Let "hash-value" be the SHA-256 message digest [RFC6234] of 3. Let "hash-value" be the SHA-256 message digest [RFC6234] of
"key", expressed as an integer. "key", expressed as an integer.
4. Truncate "hash-value" to log2( "N" * "P" ) bits. 4. Truncate "hash-value" to log2( "N" * "P" ) bits.
2.2. Server Behavior 2.2. Server Behavior
In typical use, a server will query (as per Section 2.2.1) the In typical use, a server will query (as per Section 2.2.1) the
CACHE_DIGESTs received on a given connection to inform what it pushes CACHE_DIGESTs received on a given connection to inform what it pushes
skipping to change at page 11, line 31 skipping to change at page 11, line 31
Transfer Protocol Version 2 (HTTP/2)", RFC 7540, Transfer Protocol Version 2 (HTTP/2)", RFC 7540,
DOI 10.17487/RFC7540, May 2015, DOI 10.17487/RFC7540, May 2015,
<http://www.rfc-editor.org/info/rfc7540>. <http://www.rfc-editor.org/info/rfc7540>.
6.2. Informative References 6.2. Informative References
[Fetch] "Fetch Standard", n.d., <https://fetch.spec.whatwg.org/>. [Fetch] "Fetch Standard", n.d., <https://fetch.spec.whatwg.org/>.
[I-D.ietf-tls-tls13] [I-D.ietf-tls-tls13]
Rescorla, E., "The Transport Layer Security (TLS) Protocol Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", draft-ietf-tls-tls13-20 (work in progress), Version 1.3", draft-ietf-tls-tls13-21 (work in progress),
April 2017. July 2017.
[RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration [RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration
Procedures for Message Header Fields", BCP 90, RFC 3864, Procedures for Message Header Fields", BCP 90, RFC 3864,
DOI 10.17487/RFC3864, September 2004, DOI 10.17487/RFC3864, September 2004,
<http://www.rfc-editor.org/info/rfc3864>. <http://www.rfc-editor.org/info/rfc3864>.
[RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data
Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006,
<http://www.rfc-editor.org/info/rfc4648>. <http://www.rfc-editor.org/info/rfc4648>.
skipping to change at page 12, line 7 skipping to change at page 12, line 7
Specifications: ABNF", STD 68, RFC 5234, Specifications: ABNF", STD 68, RFC 5234,
DOI 10.17487/RFC5234, January 2008, DOI 10.17487/RFC5234, January 2008,
<http://www.rfc-editor.org/info/rfc5234>. <http://www.rfc-editor.org/info/rfc5234>.
[RFC6265] Barth, A., "HTTP State Management Mechanism", RFC 6265, [RFC6265] Barth, A., "HTTP State Management Mechanism", RFC 6265,
DOI 10.17487/RFC6265, April 2011, DOI 10.17487/RFC6265, April 2011,
<http://www.rfc-editor.org/info/rfc6265>. <http://www.rfc-editor.org/info/rfc6265>.
[Rice] Rice, R. and J. Plaunt, "Adaptive variable-length coding [Rice] Rice, R. and J. Plaunt, "Adaptive variable-length coding
for efficient compression of spacecraft television data", for efficient compression of spacecraft television data",
IEEE Transactions on Communication Technology 19.6 , 1971. IEEE Transactions on Communication Technology 19.6,
DOI 10.1109/TCOM.1971.1090789, ISSN 0018-9332, December
1971.
[Service-Workers] [Service-Workers]
Russell, A., Song, J., Archibald, J., and M. Russell, A., Song, J., Archibald, J., and M.
Kruisselbrink, "Service Workers 1", October 2016, Kruisselbrink, "Service Workers 1", W3C Working Draft WD-
<https://www.w3.org/TR/2016/WD-service-workers-1/>. service-workers-1-20161011, October 2016,
<https://www.w3.org/TR/2016/WD-service-workers-
1-20161011/>.
Appendix A. Encoding the CACHE_DIGEST frame as an HTTP Header Appendix A. Encoding the CACHE_DIGEST frame as an HTTP Header
On some web browsers that support Service Workers [Service-Workers] On some web browsers that support Service Workers [Service-Workers]
but not Cache Digests (yet), it is possible to achieve the benefit of but not Cache Digests (yet), it is possible to achieve the benefit of
using Cache Digests by emulating the frame using HTTP Headers. using Cache Digests by emulating the frame using HTTP Headers.
For the sake of interoperability with such clients, this appendix For the sake of interoperability with such clients, this appendix
defines how a CACHE_DIGEST frame can be encoded as an HTTP header defines how a CACHE_DIGEST frame can be encoded as an HTTP header
named "Cache-Digest". named "Cache-Digest".
skipping to change at page 13, line 25 skipping to change at page 13, line 30
Thanks to Adam Langley and Giovanni Bajo for their explorations of Thanks to Adam Langley and Giovanni Bajo for their explorations of
Golomb-coded sets. In particular, see Golomb-coded sets. In particular, see
http://giovanni.bajo.it/post/47119962313/golomb-coded-sets-smaller- http://giovanni.bajo.it/post/47119962313/golomb-coded-sets-smaller-
than-bloom-filters, which refers to sample code. than-bloom-filters, which refers to sample code.
Thanks to Stefan Eissing for his suggestions. Thanks to Stefan Eissing for his suggestions.
Appendix C. Changes Appendix C. Changes
C.1. Since draft-ietf-httpbis-cache-digest-01 C.1. Since draft-ietf-httpbis-cache-digest-02
o None yet.
C.2. 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.
C.2. Since draft-ietf-httpbis-cache-digest-00 C.3. 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.
Authors' Addresses Authors' Addresses
Kazuho Oku Kazuho Oku
DeNA Co, Ltd. DeNA Co, Ltd.
Email: kazuhooku@gmail.com Email: kazuhooku@gmail.com
Mark Nottingham Mark Nottingham
Email: mnot@mnot.net Email: mnot@mnot.net
URI: https://www.mnot.net/ URI: https://www.mnot.net/
 End of changes. 11 change blocks. 
14 lines changed or deleted 22 lines changed or added

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