draft-ietf-quic-qpack-07.txt   draft-ietf-quic-qpack-08.txt 
QUIC C. Krasic QUIC C. Krasic
Internet-Draft Netflix Internet-Draft Netflix
Intended status: Standards Track M. Bishop Intended status: Standards Track M. Bishop
Expires: September 12, 2019 Akamai Technologies Expires: October 25, 2019 Akamai Technologies
A. Frindell, Ed. A. Frindell, Ed.
Facebook Facebook
March 11, 2019 April 23, 2019
QPACK: Header Compression for HTTP over QUIC QPACK: Header Compression for HTTP/3
draft-ietf-quic-qpack-07 draft-ietf-quic-qpack-08
Abstract Abstract
This specification defines QPACK, a compression format for This specification defines QPACK, a compression format for
efficiently representing HTTP header fields, to be used in HTTP/3. efficiently representing HTTP header fields, to be used in HTTP/3.
This is a variation of HPACK header compression that seeks to reduce This is a variation of HPACK header compression that seeks to reduce
head-of-line blocking. head-of-line blocking.
Note to Readers Note to Readers
skipping to change at page 1, line 46 skipping to change at page 1, line 46
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 September 12, 2019. This Internet-Draft will expire on October 25, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 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
skipping to change at page 25, line 42 skipping to change at page 25, line 42
SETTINGS_HEADER_TABLE_SIZE from HTTP/2. SETTINGS_HEADER_TABLE_SIZE from HTTP/2.
SETTINGS_QPACK_BLOCKED_STREAMS (0x7): An integer with a maximum SETTINGS_QPACK_BLOCKED_STREAMS (0x7): An integer with a maximum
value of 2^16 - 1. The default value is zero. See Section 2.1.3. value of 2^16 - 1. The default value is zero. See Section 2.1.3.
6. Error Handling 6. Error Handling
The following error codes are defined for HTTP/3 to indicate failures The following error codes are defined for HTTP/3 to indicate failures
of QPACK which prevent the stream or connection from continuing: of QPACK which prevent the stream or connection from continuing:
HTTP_QPACK_DECOMPRESSION_FAILED (TBD): The decoder failed to HTTP_QPACK_DECOMPRESSION_FAILED (0x200): The decoder failed to
interpret a header block instruction and is not able to continue interpret a header block instruction and is not able to continue
decoding that header block. decoding that header block.
HTTP_QPACK_ENCODER_STREAM_ERROR (TBD): The decoder failed to HTTP_QPACK_ENCODER_STREAM_ERROR (0x201): The decoder failed to
interpret an encoder instruction received on the encoder stream. interpret an encoder instruction received on the encoder stream.
HTTP_QPACK_DECODER_STREAM_ERROR (TBD): The encoder failed to HTTP_QPACK_DECODER_STREAM_ERROR (0x202): The encoder failed to
interpret a decoder instruction received on the decoder stream. interpret a decoder instruction received on the decoder stream.
Upon encountering an error, an implementation MAY elect to treat it Upon encountering an error, an implementation MAY elect to treat it
as a connection error even if this document prescribes that it MUST as a connection error even if this document prescribes that it MUST
be treated as a stream error. be treated as a stream error.
7. Security Considerations 7. Security Considerations
TBD. TBD.
skipping to change at page 27, line 5 skipping to change at page 27, line 5
| | | | | | | | | |
| QPACK Decoder Stream | 0x03 | Section 4.2.1 | Both | | QPACK Decoder Stream | 0x03 | Section 4.2.1 | Both |
+----------------------+------+---------------+--------+ +----------------------+------+---------------+--------+
8.3. Error Code Registration 8.3. Error Code Registration
This document specifies three error codes. The entries in the This document specifies three error codes. The entries in the
following table are registered in the "HTTP/3 Error Code" registry following table are registered in the "HTTP/3 Error Code" registry
established in [HTTP3]. established in [HTTP3].
+------------------------------+------+--------------+--------------+ +-----------------------------+-------+--------------+--------------+
| Name | Code | Description | Specificatio | | Name | Code | Description | Specificatio |
| | | | n | | | | | n |
+------------------------------+------+--------------+--------------+ +-----------------------------+-------+--------------+--------------+
| HTTP_QPACK_DECOMPRESSION_FAI | TBD | Decompressio | Section 6 | | HTTP_QPACK_DECOMPRESSION_FA | 0x200 | Decompressio | Section 6 |
| LED | | n of a | | | ILED | | n of a | |
| | | header block | | | | | header block | |
| | | failed | | | | | failed | |
| | | | | | | | | |
| HTTP_QPACK_ENCODER_STREAM_ER | TBD | Error on the | Section 6 | | HTTP_QPACK_ENCODER_STREAM_E | 0x201 | Error on the | Section 6 |
| ROR | | encoder | | | RROR | | encoder | |
| | | stream | | | | | stream | |
| | | | | | | | | |
| HTTP_QPACK_DECODER_STREAM_ER | TBD | Error on the | Section 6 | | HTTP_QPACK_DECODER_STREAM_E | 0x202 | Error on the | Section 6 |
| ROR | | decoder | | | RROR | | decoder | |
| | | stream | | | | | stream | |
+------------------------------+------+--------------+--------------+ +-----------------------------+-------+--------------+--------------+
9. References 9. References
9.1. Normative References 9.1. Normative References
[HTTP3] Bishop, M., Ed., "Hypertext Transfer Protocol Version 3 [HTTP3] Bishop, M., Ed., "Hypertext Transfer Protocol Version 3
(HTTP/3)", draft-ietf-quic-http-19 (work in progress), (HTTP/3)", draft-ietf-quic-http-20 (work in progress),
March 2019. April 2019.
[QUIC-TRANSPORT] [QUIC-TRANSPORT]
Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
Multiplexed and Secure Transport", draft-ietf-quic- Multiplexed and Secure Transport", draft-ietf-quic-
transport-18 (work in progress), March 2019. transport-18 (work in progress), April 2019.
[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>.
[RFC7541] Peon, R. and H. Ruellan, "HPACK: Header Compression for [RFC7541] Peon, R. and H. Ruellan, "HPACK: Header Compression for
HTTP/2", RFC 7541, DOI 10.17487/RFC7541, May 2015, HTTP/2", RFC 7541, DOI 10.17487/RFC7541, May 2015,
<https://www.rfc-editor.org/info/rfc7541>. <https://www.rfc-editor.org/info/rfc7541>.
 End of changes. 10 change blocks. 
28 lines changed or deleted 28 lines changed or added

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