draft-ietf-quic-http-30.txt   draft-ietf-quic-http-31.txt 
QUIC M. Bishop, Ed. QUIC M. Bishop, Ed.
Internet-Draft Akamai Internet-Draft Akamai
Intended status: Standards Track September 10, 2020 Intended status: Standards Track 25 September 2020
Expires: March 14, 2021 Expires: 29 March 2021
Hypertext Transfer Protocol Version 3 (HTTP/3) Hypertext Transfer Protocol Version 3 (HTTP/3)
draft-ietf-quic-http-30 draft-ietf-quic-http-31
Abstract Abstract
The QUIC transport protocol has several features that are desirable The QUIC transport protocol has several features that are desirable
in a transport for HTTP, such as stream multiplexing, per-stream flow in a transport for HTTP, such as stream multiplexing, per-stream flow
control, and low-latency connection establishment. This document control, and low-latency connection establishment. This document
describes a mapping of HTTP semantics over QUIC. This document also describes a mapping of HTTP semantics over QUIC. This document also
identifies HTTP/2 features that are subsumed by QUIC, and describes identifies HTTP/2 features that are subsumed by QUIC, and describes
how HTTP/2 extensions can be ported to HTTP/3. how HTTP/2 extensions can be ported to HTTP/3.
skipping to change at page 1, line 45 skipping to change at page 1, line 45
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 March 14, 2021. This Internet-Draft will expire on 29 March 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 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 (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 3, line 46 skipping to change at page 3, line 46
11.2.1. Frame Types . . . . . . . . . . . . . . . . . . . . 48 11.2.1. Frame Types . . . . . . . . . . . . . . . . . . . . 48
11.2.2. Settings Parameters . . . . . . . . . . . . . . . . 49 11.2.2. Settings Parameters . . . . . . . . . . . . . . . . 49
11.2.3. Error Codes . . . . . . . . . . . . . . . . . . . . 50 11.2.3. Error Codes . . . . . . . . . . . . . . . . . . . . 50
11.2.4. Stream Types . . . . . . . . . . . . . . . . . . . . 53 11.2.4. Stream Types . . . . . . . . . . . . . . . . . . . . 53
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 53 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 53
12.1. Normative References . . . . . . . . . . . . . . . . . . 53 12.1. Normative References . . . . . . . . . . . . . . . . . . 53
12.2. Informative References . . . . . . . . . . . . . . . . . 55 12.2. Informative References . . . . . . . . . . . . . . . . . 55
Appendix A. Considerations for Transitioning from HTTP/2 . . . . 56 Appendix A. Considerations for Transitioning from HTTP/2 . . . . 56
A.1. Streams . . . . . . . . . . . . . . . . . . . . . . . . . 56 A.1. Streams . . . . . . . . . . . . . . . . . . . . . . . . . 56
A.2. HTTP Frame Types . . . . . . . . . . . . . . . . . . . . 57 A.2. HTTP Frame Types . . . . . . . . . . . . . . . . . . . . 57
A.2.1. Prioritization Differences . . . . . . . . . . . . . 58 A.2.1. Prioritization Differences . . . . . . . . . . . . . 57
A.2.2. Field Compression Differences . . . . . . . . . . . . 58 A.2.2. Field Compression Differences . . . . . . . . . . . . 58
A.2.3. Flow Control Differences . . . . . . . . . . . . . . 58 A.2.3. Flow Control Differences . . . . . . . . . . . . . . 58
A.2.4. Guidance for New Frame Type Definitions . . . . . . . 58 A.2.4. Guidance for New Frame Type Definitions . . . . . . . 58
A.2.5. Mapping Between HTTP/2 and HTTP/3 Frame Types . . . . 59 A.2.5. Mapping Between HTTP/2 and HTTP/3 Frame Types . . . . 59
A.3. HTTP/2 SETTINGS Parameters . . . . . . . . . . . . . . . 60 A.3. HTTP/2 SETTINGS Parameters . . . . . . . . . . . . . . . 60
A.4. HTTP/2 Error Codes . . . . . . . . . . . . . . . . . . . 61 A.4. HTTP/2 Error Codes . . . . . . . . . . . . . . . . . . . 61
A.4.1. Mapping Between HTTP/2 and HTTP/3 Errors . . . . . . 62 A.4.1. Mapping Between HTTP/2 and HTTP/3 Errors . . . . . . 62
Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 63 Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 63
B.1. Since draft-ietf-quic-http-29 . . . . . . . . . . . . . . 63 B.1. Since draft-ietf-quic-http-30 . . . . . . . . . . . . . . 63
B.2. Since draft-ietf-quic-http-28 . . . . . . . . . . . . . . 63 B.2. Since draft-ietf-quic-http-29 . . . . . . . . . . . . . . 63
B.3. Since draft-ietf-quic-http-27 . . . . . . . . . . . . . . 63 B.3. Since draft-ietf-quic-http-28 . . . . . . . . . . . . . . 63
B.4. Since draft-ietf-quic-http-26 . . . . . . . . . . . . . . 63 B.4. Since draft-ietf-quic-http-27 . . . . . . . . . . . . . . 63
B.5. Since draft-ietf-quic-http-25 . . . . . . . . . . . . . . 64 B.5. Since draft-ietf-quic-http-26 . . . . . . . . . . . . . . 63
B.6. Since draft-ietf-quic-http-24 . . . . . . . . . . . . . . 64 B.6. Since draft-ietf-quic-http-25 . . . . . . . . . . . . . . 63
B.7. Since draft-ietf-quic-http-23 . . . . . . . . . . . . . . 64 B.7. Since draft-ietf-quic-http-24 . . . . . . . . . . . . . . 64
B.8. Since draft-ietf-quic-http-22 . . . . . . . . . . . . . . 64 B.8. Since draft-ietf-quic-http-23 . . . . . . . . . . . . . . 64
B.9. Since draft-ietf-quic-http-21 . . . . . . . . . . . . . . 65 B.9. Since draft-ietf-quic-http-22 . . . . . . . . . . . . . . 64
B.10. Since draft-ietf-quic-http-20 . . . . . . . . . . . . . . 65 B.10. Since draft-ietf-quic-http-21 . . . . . . . . . . . . . . 65
B.11. Since draft-ietf-quic-http-19 . . . . . . . . . . . . . . 66 B.11. Since draft-ietf-quic-http-20 . . . . . . . . . . . . . . 65
B.12. Since draft-ietf-quic-http-18 . . . . . . . . . . . . . . 66 B.12. Since draft-ietf-quic-http-19 . . . . . . . . . . . . . . 66
B.13. Since draft-ietf-quic-http-17 . . . . . . . . . . . . . . 67 B.13. Since draft-ietf-quic-http-18 . . . . . . . . . . . . . . 66
B.14. Since draft-ietf-quic-http-16 . . . . . . . . . . . . . . 67 B.14. Since draft-ietf-quic-http-17 . . . . . . . . . . . . . . 66
B.15. Since draft-ietf-quic-http-15 . . . . . . . . . . . . . . 67 B.15. Since draft-ietf-quic-http-16 . . . . . . . . . . . . . . 67
B.16. Since draft-ietf-quic-http-14 . . . . . . . . . . . . . . 67 B.16. Since draft-ietf-quic-http-15 . . . . . . . . . . . . . . 67
B.17. Since draft-ietf-quic-http-13 . . . . . . . . . . . . . . 68 B.17. Since draft-ietf-quic-http-14 . . . . . . . . . . . . . . 67
B.18. Since draft-ietf-quic-http-12 . . . . . . . . . . . . . . 68 B.18. Since draft-ietf-quic-http-13 . . . . . . . . . . . . . . 67
B.19. Since draft-ietf-quic-http-11 . . . . . . . . . . . . . . 68 B.19. Since draft-ietf-quic-http-12 . . . . . . . . . . . . . . 68
B.20. Since draft-ietf-quic-http-10 . . . . . . . . . . . . . . 68 B.20. Since draft-ietf-quic-http-11 . . . . . . . . . . . . . . 68
B.21. Since draft-ietf-quic-http-09 . . . . . . . . . . . . . . 68 B.21. Since draft-ietf-quic-http-10 . . . . . . . . . . . . . . 68
B.22. Since draft-ietf-quic-http-08 . . . . . . . . . . . . . . 69 B.22. Since draft-ietf-quic-http-09 . . . . . . . . . . . . . . 68
B.23. Since draft-ietf-quic-http-07 . . . . . . . . . . . . . . 69 B.23. Since draft-ietf-quic-http-08 . . . . . . . . . . . . . . 69
B.24. Since draft-ietf-quic-http-06 . . . . . . . . . . . . . . 69 B.24. Since draft-ietf-quic-http-07 . . . . . . . . . . . . . . 69
B.25. Since draft-ietf-quic-http-05 . . . . . . . . . . . . . . 69 B.25. Since draft-ietf-quic-http-06 . . . . . . . . . . . . . . 69
B.26. Since draft-ietf-quic-http-04 . . . . . . . . . . . . . . 69 B.26. Since draft-ietf-quic-http-05 . . . . . . . . . . . . . . 69
B.27. Since draft-ietf-quic-http-03 . . . . . . . . . . . . . . 70 B.27. Since draft-ietf-quic-http-04 . . . . . . . . . . . . . . 69
B.28. Since draft-ietf-quic-http-02 . . . . . . . . . . . . . . 70 B.28. Since draft-ietf-quic-http-03 . . . . . . . . . . . . . . 69
B.29. Since draft-ietf-quic-http-01 . . . . . . . . . . . . . . 70 B.29. Since draft-ietf-quic-http-02 . . . . . . . . . . . . . . 70
B.30. Since draft-ietf-quic-http-00 . . . . . . . . . . . . . . 70 B.30. Since draft-ietf-quic-http-01 . . . . . . . . . . . . . . 70
B.31. Since draft-shade-quic-http2-mapping-00 . . . . . . . . . 71 B.31. Since draft-ietf-quic-http-00 . . . . . . . . . . . . . . 70
B.32. Since draft-shade-quic-http2-mapping-00 . . . . . . . . . 71
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 71 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 71
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 72 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 72
1. Introduction 1. Introduction
HTTP semantics ([SEMANTICS]) are used for a broad range of services HTTP semantics ([SEMANTICS]) are used for a broad range of services
on the Internet. These semantics have most commonly been used with on the Internet. These semantics have most commonly been used with
HTTP/1.1, over a variety of transport and session layers, and with HTTP/1.1, over a variety of transport and session layers, and with
HTTP/2 over TLS. HTTP/3 supports the same semantics over a new HTTP/2 over TLS. HTTP/3 supports the same semantics over a new
transport protocol, QUIC. transport protocol, QUIC.
skipping to change at page 15, line 18 skipping to change at page 15, line 18
All pseudo-header fields MUST appear in the header field section All pseudo-header fields MUST appear in the header field section
before regular header fields. Any request or response that contains before regular header fields. Any request or response that contains
a pseudo-header field that appears in a header field section after a a pseudo-header field that appears in a header field section after a
regular header field MUST be treated as malformed (Section 4.1.3). regular header field MUST be treated as malformed (Section 4.1.3).
The following pseudo-header fields are defined for requests: The following pseudo-header fields are defined for requests:
":method": Contains the HTTP method (Section 8 of [SEMANTICS]) ":method": Contains the HTTP method (Section 8 of [SEMANTICS])
":scheme": Contains the scheme portion of the target URI ":scheme": Contains the scheme portion of the target URI
(Section 3.1 of [RFC3986]) (Section 3.1 of [URI])
":scheme" is not restricted to "http" and "https" schemed URIs. A ":scheme" is not restricted to "http" and "https" schemed URIs. A
proxy or gateway can translate requests for non-HTTP schemes, proxy or gateway can translate requests for non-HTTP schemes,
enabling the use of HTTP to interact with non-HTTP services. enabling the use of HTTP to interact with non-HTTP services.
":authority": Contains the authority portion of the target URI ":authority": Contains the authority portion of the target URI
(Section 3.2 of [RFC3986]). The authority MUST NOT include the (Section 3.2 of [URI]). The authority MUST NOT include the
deprecated "userinfo" subcomponent for "http" or "https" schemed deprecated "userinfo" subcomponent for "http" or "https" schemed
URIs. URIs.
To ensure that the HTTP/1.1 request line can be reproduced To ensure that the HTTP/1.1 request line can be reproduced
accurately, this pseudo-header field MUST be omitted when accurately, this pseudo-header field MUST be omitted when
translating from an HTTP/1.1 request that has a request target in translating from an HTTP/1.1 request that has a request target in
origin or asterisk form; see Section 3.2 of [HTTP11]. Clients origin or asterisk form; see Section 3.2 of [HTTP11]. Clients
that generate HTTP/3 requests directly SHOULD use the ":authority" that generate HTTP/3 requests directly SHOULD use the ":authority"
pseudo-header field instead of the Host field. An intermediary pseudo-header field instead of the Host field. An intermediary
that converts an HTTP/3 request to HTTP/1.1 MUST create a Host that converts an HTTP/3 request to HTTP/1.1 MUST create a Host
skipping to change at page 21, line 42 skipping to change at page 21, line 42
* safe; see Section 8.2.1 of [SEMANTICS] * safe; see Section 8.2.1 of [SEMANTICS]
* does not include a request body or trailer section * does not include a request body or trailer section
The server MUST include a value in the ":authority" pseudo-header The server MUST include a value in the ":authority" pseudo-header
field for which the server is authoritative; see Section 3.4. field for which the server is authoritative; see Section 3.4.
Clients SHOULD send a CANCEL_PUSH frame upon receipt of a Clients SHOULD send a CANCEL_PUSH frame upon receipt of a
PUSH_PROMISE frame carrying a request that is not cacheable, is not PUSH_PROMISE frame carrying a request that is not cacheable, is not
known to be safe, that indicates the presence of a request body, or known to be safe, that indicates the presence of a request body, or
for which it does not consider the server authoritative. for which it does not consider the server authoritative. Any
corresponding responses MUST NOT be used or cached.
Each pushed response is associated with one or more client requests. Each pushed response is associated with one or more client requests.
The push is associated with the request stream on which the The push is associated with the request stream on which the
PUSH_PROMISE frame was received. The same server push can be PUSH_PROMISE frame was received. The same server push can be
associated with additional client requests using a PUSH_PROMISE frame associated with additional client requests using a PUSH_PROMISE frame
with the same Push ID on multiple request streams. These with the same Push ID on multiple request streams. These
associations do not affect the operation of the protocol, but MAY be associations do not affect the operation of the protocol, but MAY be
considered by user agents when deciding how to use pushed resources. considered by user agents when deciding how to use pushed resources.
Ordering of a PUSH_PROMISE frame in relation to certain parts of the Ordering of a PUSH_PROMISE frame in relation to certain parts of the
skipping to change at page 43, line 41 skipping to change at page 43, line 41
tenant. For example, a server might offer multiple users each a tenant. For example, a server might offer multiple users each a
small portion of its URI space. small portion of its URI space.
Where multiple tenants share space on the same server, that server Where multiple tenants share space on the same server, that server
MUST ensure that tenants are not able to push representations of MUST ensure that tenants are not able to push representations of
resources that they do not have authority over. Failure to enforce resources that they do not have authority over. Failure to enforce
this would allow a tenant to provide a representation that would be this would allow a tenant to provide a representation that would be
served out of cache, overriding the actual representation that the served out of cache, overriding the actual representation that the
authoritative tenant provides. authoritative tenant provides.
Pushed responses for which an origin server is not authoritative (see Clients are required to reject pushed responses for which an origin
Section 3.4) MUST NOT be used or cached. server is not authoritative; see Section 4.4.
10.5. Denial-of-Service Considerations 10.5. Denial-of-Service Considerations
An HTTP/3 connection can demand a greater commitment of resources to An HTTP/3 connection can demand a greater commitment of resources to
operate than an HTTP/1.1 or HTTP/2 connection. The use of field operate than an HTTP/1.1 or HTTP/2 connection. The use of field
compression and flow control depend on a commitment of resources for compression and flow control depend on a commitment of resources for
storing a greater amount of state. Settings for these features storing a greater amount of state. Settings for these features
ensure that memory commitments for these features are strictly ensure that memory commitments for these features are strictly
bounded. bounded.
skipping to change at page 54, line 7 skipping to change at page 54, line 7
12. References 12. References
12.1. Normative References 12.1. Normative References
[ALTSVC] Nottingham, M., McManus, P., and J. Reschke, "HTTP [ALTSVC] Nottingham, M., McManus, P., and J. Reschke, "HTTP
Alternative Services", RFC 7838, DOI 10.17487/RFC7838, Alternative Services", RFC 7838, DOI 10.17487/RFC7838,
April 2016, <https://www.rfc-editor.org/info/rfc7838>. April 2016, <https://www.rfc-editor.org/info/rfc7838>.
[CACHING] Fielding, R., Nottingham, M., and J. Reschke, "HTTP [CACHING] Fielding, R., Nottingham, M., and J. Reschke, "HTTP
Caching", Work in Progress, Internet-Draft, draft-ietf- Caching", Work in Progress, Internet-Draft, draft-ietf-
httpbis-cache-11, August 27, 2020, <http://www.ietf.org/ httpbis-cache-11, 27 August 2020, <http://www.ietf.org/
internet-drafts/draft-ietf-httpbis-cache-11.txt>. internet-drafts/draft-ietf-httpbis-cache-11.txt>.
[HTTP-REPLAY] [HTTP-REPLAY]
Thomson, M., Nottingham, M., and W. Tarreau, "Using Early Thomson, M., Nottingham, M., and W. Tarreau, "Using Early
Data in HTTP", RFC 8470, DOI 10.17487/RFC8470, September Data in HTTP", RFC 8470, DOI 10.17487/RFC8470, September
2018, <https://www.rfc-editor.org/info/rfc8470>. 2018, <https://www.rfc-editor.org/info/rfc8470>.
[QPACK] Krasic, C., Bishop, M., and A. Frindell, Ed., "QPACK: [QPACK] Krasic, C., Bishop, M., and A. Frindell, Ed., "QPACK:
Header Compression for HTTP over QUIC", Work in Progress, Header Compression for HTTP over QUIC", Work in Progress,
Internet-Draft, draft-ietf-quic-qpack-17, September 10, Internet-Draft, draft-ietf-quic-qpack-18, 25 September
2020, 2020,
<https://tools.ietf.org/html/draft-ietf-quic-qpack-17>. <https://tools.ietf.org/html/draft-ietf-quic-qpack-18>.
[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", Work in Progress, Multiplexed and Secure Transport", Work in Progress,
Internet-Draft, draft-ietf-quic-transport-29, September Internet-Draft, draft-ietf-quic-transport-31, 25 September
10, 2020, <https://tools.ietf.org/html/draft-ietf-quic- 2020, <https://tools.ietf.org/html/draft-ietf-quic-
transport-29>. transport-31>.
[RFC0793] Postel, J., "Transmission Control Protocol", STD 7, [RFC0793] Postel, J., "Transmission Control Protocol", STD 7,
RFC 793, DOI 10.17487/RFC0793, September 1981, RFC 793, DOI 10.17487/RFC0793, September 1981,
<https://www.rfc-editor.org/info/rfc793>. <https://www.rfc-editor.org/info/rfc793>.
[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>.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, DOI 10.17487/RFC3986, January 2005,
<https://www.rfc-editor.org/info/rfc3986>.
[RFC6066] Eastlake 3rd, D., "Transport Layer Security (TLS) [RFC6066] Eastlake 3rd, D., "Transport Layer Security (TLS)
Extensions: Extension Definitions", RFC 6066, Extensions: Extension Definitions", RFC 6066,
DOI 10.17487/RFC6066, January 2011, DOI 10.17487/RFC6066, January 2011,
<https://www.rfc-editor.org/info/rfc6066>. <https://www.rfc-editor.org/info/rfc6066>.
[RFC6125] Saint-Andre, P. and J. Hodges, "Representation and [RFC6125] Saint-Andre, P. and J. Hodges, "Representation and
Verification of Domain-Based Application Service Identity Verification of Domain-Based Application Service Identity
within Internet Public Key Infrastructure Using X.509 within Internet Public Key Infrastructure Using X.509
(PKIX) Certificates in the Context of Transport Layer (PKIX) Certificates in the Context of Transport Layer
Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March
skipping to change at page 55, line 30 skipping to change at page 55, line 26
HTTP/2", RFC 8164, DOI 10.17487/RFC8164, May 2017, HTTP/2", RFC 8164, DOI 10.17487/RFC8164, May 2017,
<https://www.rfc-editor.org/info/rfc8164>. <https://www.rfc-editor.org/info/rfc8164>.
[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>.
[SEMANTICS] [SEMANTICS]
Fielding, R., Nottingham, M., and J. Reschke, "HTTP Fielding, R., Nottingham, M., and J. Reschke, "HTTP
Semantics", Work in Progress, Internet-Draft, draft-ietf- Semantics", Work in Progress, Internet-Draft, draft-ietf-
httpbis-semantics-11, August 27, 2020, httpbis-semantics-11, 27 August 2020,
<http://www.ietf.org/internet-drafts/draft-ietf-httpbis- <http://www.ietf.org/internet-drafts/draft-ietf-httpbis-
semantics-11.txt>. semantics-11.txt>.
[URI] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, DOI 10.17487/RFC3986, January 2005,
<https://www.rfc-editor.org/info/rfc3986>.
12.2. Informative References 12.2. Informative References
[BREACH] Gluck, Y., Harris, N., and A. Prado, "BREACH: Reviving the [BREACH] Gluck, Y., Harris, N., and A. Prado, "BREACH: Reviving the
CRIME Attack", July 2013, CRIME Attack", July 2013,
<http://breachattack.com/resources/ <http://breachattack.com/resources/
BREACH%20-%20SSL,%20gone%20in%2030%20seconds.pdf>. BREACH%20-%20SSL,%20gone%20in%2030%20seconds.pdf>.
[HPACK] Peon, R. and H. Ruellan, "HPACK: Header Compression for [HPACK] 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>.
[HTTP11] Fielding, R., Nottingham, M., and J. Reschke, "HTTP/1.1 [HTTP11] Fielding, R., Nottingham, M., and J. Reschke, "HTTP/1.1
Messaging", Work in Progress, Internet-Draft, draft-ietf- Messaging", Work in Progress, Internet-Draft, draft-ietf-
httpbis-messaging-11, August 27, 2020, httpbis-messaging-11, 27 August 2020,
<http://www.ietf.org/internet-drafts/draft-ietf-httpbis- <http://www.ietf.org/internet-drafts/draft-ietf-httpbis-
messaging-11.txt>. messaging-11.txt>.
[HTTP2] Belshe, M., Peon, R., and M. Thomson, Ed., "Hypertext [HTTP2] Belshe, M., Peon, R., and M. Thomson, Ed., "Hypertext
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,
<https://www.rfc-editor.org/info/rfc7540>. <https://www.rfc-editor.org/info/rfc7540>.
[RFC6585] Nottingham, M. and R. Fielding, "Additional HTTP Status [RFC6585] Nottingham, M. and R. Fielding, "Additional HTTP Status
Codes", RFC 6585, DOI 10.17487/RFC6585, April 2012, Codes", RFC 6585, DOI 10.17487/RFC6585, April 2012,
<https://www.rfc-editor.org/info/rfc6585>. <https://www.rfc-editor.org/info/rfc6585>.
[TFO] Cheng, Y., Chu, J., Radhakrishnan, S., and A. Jain, "TCP [TFO] Cheng, Y., Chu, J., Radhakrishnan, S., and A. Jain, "TCP
Fast Open", RFC 7413, DOI 10.17487/RFC7413, December 2014, Fast Open", RFC 7413, DOI 10.17487/RFC7413, December 2014,
<https://www.rfc-editor.org/info/rfc7413>. <https://www.rfc-editor.org/info/rfc7413>.
[TLS13] Rescorla, E., "The Transport Layer Security (TLS) Protocol [TLS13] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/info/rfc8446>. <https://www.rfc-editor.org/info/rfc8446>.
[URI] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, DOI 10.17487/RFC3986, January 2005,
<https://www.rfc-editor.org/info/rfc3986>.
Appendix A. Considerations for Transitioning from HTTP/2 Appendix A. Considerations for Transitioning from HTTP/2
HTTP/3 is strongly informed by HTTP/2, and bears many similarities. HTTP/3 is strongly informed by HTTP/2, and bears many similarities.
This section describes the approach taken to design HTTP/3, points This section describes the approach taken to design HTTP/3, points
out important differences from HTTP/2, and describes how to map out important differences from HTTP/2, and describes how to map
HTTP/2 extensions into HTTP/3. HTTP/2 extensions into HTTP/3.
HTTP/3 begins from the premise that similarity to HTTP/2 is HTTP/3 begins from the premise that similarity to HTTP/2 is
preferable, but not a hard requirement. HTTP/3 departs from HTTP/2 preferable, but not a hard requirement. HTTP/3 departs from HTTP/2
where QUIC differs from TCP, either to take advantage of QUIC where QUIC differs from TCP, either to take advantage of QUIC
skipping to change at page 63, line 18 skipping to change at page 63, line 10
inappropriate or unknown error codes for the target version. An inappropriate or unknown error codes for the target version. An
intermediary is permitted to promote stream errors to connection intermediary is permitted to promote stream errors to connection
errors but they should be aware of the cost to the connection for errors but they should be aware of the cost to the connection for
what might be a temporary or intermittent error. what might be a temporary or intermittent error.
Appendix B. Change Log Appendix B. Change Log
*RFC Editor's Note:* Please remove this section prior to *RFC Editor's Note:* Please remove this section prior to
publication of a final version of this document. publication of a final version of this document.
B.1. Since draft-ietf-quic-http-29 B.1. Since draft-ietf-quic-http-30
Editorial changes only.
B.2. Since draft-ietf-quic-http-29
* Require a connection error if a reserved frame type that * Require a connection error if a reserved frame type that
corresponds to a frame in HTTP/2 is received (#3991, #3993) corresponds to a frame in HTTP/2 is received (#3991, #3993)
* Require a connection error if a reserved setting that corresponds * Require a connection error if a reserved setting that corresponds
to a setting in HTTP/2 is received (#3954, #3955) to a setting in HTTP/2 is received (#3954, #3955)
B.2. Since draft-ietf-quic-http-28 B.3. Since draft-ietf-quic-http-28
* CANCEL_PUSH is recommended even when the stream is reset (#3698, * CANCEL_PUSH is recommended even when the stream is reset (#3698,
#3700) #3700)
* Use H3_ID_ERROR when GOAWAY contains a larger identifier (#3631, * Use H3_ID_ERROR when GOAWAY contains a larger identifier (#3631,
#3634) #3634)
B.3. Since draft-ietf-quic-http-27 B.4. Since draft-ietf-quic-http-27
* Updated text to refer to latest HTTP revisions * Updated text to refer to latest HTTP revisions
* Use the HTTP definition of authority for establishing and * Use the HTTP definition of authority for establishing and
coalescing connections (#253, #2223, #3558) coalescing connections (#253, #2223, #3558)
* Define use of GOAWAY from both endpoints (#2632, #3129) * Define use of GOAWAY from both endpoints (#2632, #3129)
* Require either :authority or Host if the URI scheme has a * Require either :authority or Host if the URI scheme has a
mandatory authority component (#3408, #3475) mandatory authority component (#3408, #3475)
B.4. Since draft-ietf-quic-http-26 B.5. Since draft-ietf-quic-http-26
* No changes * No changes
B.5. Since draft-ietf-quic-http-25 B.6. Since draft-ietf-quic-http-25
* Require QUICv1 for HTTP/3 (#3117, #3323) * Require QUICv1 for HTTP/3 (#3117, #3323)
* Remove DUPLICATE_PUSH and allow duplicate PUSH_PROMISE (#3275, * Remove DUPLICATE_PUSH and allow duplicate PUSH_PROMISE (#3275,
#3309) #3309)
* Clarify the definition of "malformed" (#3352, #3345) * Clarify the definition of "malformed" (#3352, #3345)
B.6. Since draft-ietf-quic-http-24 B.7. Since draft-ietf-quic-http-24
* Removed H3_EARLY_RESPONSE error code; H3_NO_ERROR is recommended * Removed H3_EARLY_RESPONSE error code; H3_NO_ERROR is recommended
instead (#3130,#3208) instead (#3130,#3208)
* Unknown error codes are equivalent to H3_NO_ERROR (#3276,#3331) * Unknown error codes are equivalent to H3_NO_ERROR (#3276,#3331)
* Some error codes are reserved for greasing (#3325,#3360) * Some error codes are reserved for greasing (#3325,#3360)
B.7. Since draft-ietf-quic-http-23 B.8. Since draft-ietf-quic-http-23
* Removed "quic" Alt-Svc parameter (#3061,#3118) * Removed "quic" Alt-Svc parameter (#3061,#3118)
* Clients need not persist unknown settings for use in 0-RTT * Clients need not persist unknown settings for use in 0-RTT
(#3110,#3113) (#3110,#3113)
* Clarify error cases around CANCEL_PUSH (#2819,#3083) * Clarify error cases around CANCEL_PUSH (#2819,#3083)
B.8. Since draft-ietf-quic-http-22 B.9. Since draft-ietf-quic-http-22
* Removed priority signaling (#2922,#2924) * Removed priority signaling (#2922,#2924)
* Further changes to error codes (#2662,#2551): * Further changes to error codes (#2662,#2551):
- Error codes renumbered - Error codes renumbered
- HTTP_MALFORMED_FRAME replaced by HTTP_FRAME_ERROR, - HTTP_MALFORMED_FRAME replaced by HTTP_FRAME_ERROR,
HTTP_ID_ERROR, and others HTTP_ID_ERROR, and others
skipping to change at page 65, line 4 skipping to change at page 64, line 46
* Clarify how unknown frame types interact with required frame * Clarify how unknown frame types interact with required frame
sequence (#2867,#2858) sequence (#2867,#2858)
* Describe interactions with the transport in terms of defined * Describe interactions with the transport in terms of defined
interface terms (#2857,#2805) interface terms (#2857,#2805)
* Require the use of the "http-opportunistic" resource (RFC 8164) * Require the use of the "http-opportunistic" resource (RFC 8164)
when scheme is "http" (#2439,#2973) when scheme is "http" (#2439,#2973)
* Settings identifiers cannot be duplicated (#2979) * Settings identifiers cannot be duplicated (#2979)
* Changes to SETTINGS frames in 0-RTT (#2972,#2790,#2945): * Changes to SETTINGS frames in 0-RTT (#2972,#2790,#2945):
- Servers must send all settings with non-default values in their - Servers must send all settings with non-default values in their
SETTINGS frame, even when resuming SETTINGS frame, even when resuming
- If a client doesn't have settings associated with a 0-RTT - If a client doesn't have settings associated with a 0-RTT
ticket, it uses the defaults ticket, it uses the defaults
- Servers can't accept early data if they cannot recover the - Servers can't accept early data if they cannot recover the
settings the client will have remembered settings the client will have remembered
* Clarify that Upgrade and the 101 status code are prohibited * Clarify that Upgrade and the 101 status code are prohibited
(#2898,#2889) (#2898,#2889)
* Clarify that frame types reserved for greasing can occur on any * Clarify that frame types reserved for greasing can occur on any
stream, but frame types reserved due to HTTP/2 correspondence are stream, but frame types reserved due to HTTP/2 correspondence are
prohibited (#2997,#2692,#2693) prohibited (#2997,#2692,#2693)
* Unknown error codes cannot be treated as errors (#2998,#2816) * Unknown error codes cannot be treated as errors (#2998,#2816)
B.9. Since draft-ietf-quic-http-21 B.10. Since draft-ietf-quic-http-21
No changes No changes
B.10. Since draft-ietf-quic-http-20 B.11. Since draft-ietf-quic-http-20
* Prohibit closing the control stream (#2509, #2666) * Prohibit closing the control stream (#2509, #2666)
* Change default priority to use an orphan node (#2502, #2690) * Change default priority to use an orphan node (#2502, #2690)
* Exclusive priorities are restored (#2754, #2781) * Exclusive priorities are restored (#2754, #2781)
* Restrict use of frames when using CONNECT (#2229, #2702) * Restrict use of frames when using CONNECT (#2229, #2702)
* Close and maybe reset streams if a connection error occurs for * Close and maybe reset streams if a connection error occurs for
skipping to change at page 66, line 4 skipping to change at page 65, line 46
* Encourage provision of sufficient unidirectional streams for QPACK * Encourage provision of sufficient unidirectional streams for QPACK
(#2100, #2529, #2762) (#2100, #2529, #2762)
* Allow extensions to use server-initiated bidirectional streams * Allow extensions to use server-initiated bidirectional streams
(#2711, #2773) (#2711, #2773)
* Clarify use of maximum header list size setting (#2516, #2774) * Clarify use of maximum header list size setting (#2516, #2774)
* Extensive changes to error codes and conditions of their sending * Extensive changes to error codes and conditions of their sending
- Require connection errors for more error conditions (#2511, - Require connection errors for more error conditions (#2511,
#2510) #2510)
- Updated the error codes for illegal GOAWAY frames (#2714, - Updated the error codes for illegal GOAWAY frames (#2714,
#2707) #2707)
- Specified error code for HEADERS on control stream (#2708) - Specified error code for HEADERS on control stream (#2708)
- Specified error code for servers receiving PUSH_PROMISE (#2709) - Specified error code for servers receiving PUSH_PROMISE (#2709)
- Specified error code for receiving DATA before HEADERS (#2715) - Specified error code for receiving DATA before HEADERS (#2715)
- Describe malformed messages and their handling (#2410, #2764) - Describe malformed messages and their handling (#2410, #2764)
- Remove HTTP_PUSH_ALREADY_IN_CACHE error (#2812, #2813) - Remove HTTP_PUSH_ALREADY_IN_CACHE error (#2812, #2813)
- Refactor Push ID related errors (#2818, #2820) - Refactor Push ID related errors (#2818, #2820)
- Rationalize HTTP/3 stream creation errors (#2821, #2822) - Rationalize HTTP/3 stream creation errors (#2821, #2822)
B.11. Since draft-ietf-quic-http-19 B.12. Since draft-ietf-quic-http-19
* SETTINGS_NUM_PLACEHOLDERS is 0x9 (#2443,#2530) * SETTINGS_NUM_PLACEHOLDERS is 0x9 (#2443,#2530)
* Non-zero bits in the Empty field of the PRIORITY frame MAY be * Non-zero bits in the Empty field of the PRIORITY frame MAY be
treated as an error (#2501) treated as an error (#2501)
B.12. Since draft-ietf-quic-http-18 B.13. Since draft-ietf-quic-http-18
* Resetting streams following a GOAWAY is recommended, but not * Resetting streams following a GOAWAY is recommended, but not
required (#2256,#2457) required (#2256,#2457)
* Use variable-length integers throughout (#2437,#2233,#2253,#2275) * Use variable-length integers throughout (#2437,#2233,#2253,#2275)
- Variable-length frame types, stream types, and settings - Variable-length frame types, stream types, and settings
identifiers identifiers
- Renumbered stream type assignments - Renumbered stream type assignments
- Modified associated reserved values - Modified associated reserved values
* Frame layout switched from Length-Type-Value to Type-Length-Value * Frame layout switched from Length-Type-Value to Type-Length-Value
(#2395,#2235) (#2395,#2235)
* Specified error code for servers receiving DUPLICATE_PUSH (#2497) * Specified error code for servers receiving DUPLICATE_PUSH (#2497)
* Use connection error for invalid PRIORITY (#2507, #2508) * Use connection error for invalid PRIORITY (#2507, #2508)
B.13. Since draft-ietf-quic-http-17 B.14. Since draft-ietf-quic-http-17
* HTTP_REQUEST_REJECTED is used to indicate a request can be retried * HTTP_REQUEST_REJECTED is used to indicate a request can be retried
(#2106, #2325) (#2106, #2325)
* Changed error code for GOAWAY on the wrong stream (#2231, #2343) * Changed error code for GOAWAY on the wrong stream (#2231, #2343)
B.14. Since draft-ietf-quic-http-16 B.15. Since draft-ietf-quic-http-16
* Rename "HTTP/QUIC" to "HTTP/3" (#1973) * Rename "HTTP/QUIC" to "HTTP/3" (#1973)
* Changes to PRIORITY frame (#1865, #2075) * Changes to PRIORITY frame (#1865, #2075)
- Permitted as first frame of request streams - Permitted as first frame of request streams
- Remove exclusive reprioritization - Remove exclusive reprioritization
- Changes to Prioritized Element Type bits - Changes to Prioritized Element Type bits
skipping to change at page 67, line 38 skipping to change at page 67, line 31
(#1809, #1846, #2038) (#1809, #1846, #2038)
* Clarify message processing rules for streams that aren't closed * Clarify message processing rules for streams that aren't closed
(#1972, #2003) (#1972, #2003)
* Removed reservation of error code 0 and moved HTTP_NO_ERROR to * Removed reservation of error code 0 and moved HTTP_NO_ERROR to
this value (#1922) this value (#1922)
* Removed prohibition of zero-length DATA frames (#2098) * Removed prohibition of zero-length DATA frames (#2098)
B.15. Since draft-ietf-quic-http-15 B.16. Since draft-ietf-quic-http-15
Substantial editorial reorganization; no technical changes. Substantial editorial reorganization; no technical changes.
B.16. Since draft-ietf-quic-http-14 B.17. Since draft-ietf-quic-http-14
* Recommend sensible values for QUIC transport parameters * Recommend sensible values for QUIC transport parameters
(#1720,#1806) (#1720,#1806)
* Define error for missing SETTINGS frame (#1697,#1808) * Define error for missing SETTINGS frame (#1697,#1808)
* Setting values are variable-length integers (#1556,#1807) and do * Setting values are variable-length integers (#1556,#1807) and do
not have separate maximum values (#1820) not have separate maximum values (#1820)
* Expanded discussion of connection closure (#1599,#1717,#1712) * Expanded discussion of connection closure (#1599,#1717,#1712)
skipping to change at page 68, line 4 skipping to change at page 67, line 46
* Recommend sensible values for QUIC transport parameters * Recommend sensible values for QUIC transport parameters
(#1720,#1806) (#1720,#1806)
* Define error for missing SETTINGS frame (#1697,#1808) * Define error for missing SETTINGS frame (#1697,#1808)
* Setting values are variable-length integers (#1556,#1807) and do * Setting values are variable-length integers (#1556,#1807) and do
not have separate maximum values (#1820) not have separate maximum values (#1820)
* Expanded discussion of connection closure (#1599,#1717,#1712) * Expanded discussion of connection closure (#1599,#1717,#1712)
* HTTP_VERSION_FALLBACK falls back to HTTP/1.1 (#1677,#1685) * HTTP_VERSION_FALLBACK falls back to HTTP/1.1 (#1677,#1685)
B.17. Since draft-ietf-quic-http-13 B.18. Since draft-ietf-quic-http-13
* Reserved some frame types for grease (#1333, #1446) * Reserved some frame types for grease (#1333, #1446)
* Unknown unidirectional stream types are tolerated, not errors; * Unknown unidirectional stream types are tolerated, not errors;
some reserved for grease (#1490, #1525) some reserved for grease (#1490, #1525)
* Require settings to be remembered for 0-RTT, prohibit reductions * Require settings to be remembered for 0-RTT, prohibit reductions
(#1541, #1641) (#1541, #1641)
* Specify behavior for truncated requests (#1596, #1643) * Specify behavior for truncated requests (#1596, #1643)
B.18. Since draft-ietf-quic-http-12 B.19. Since draft-ietf-quic-http-12
* TLS SNI extension isn't mandatory if an alternative method is used * TLS SNI extension isn't mandatory if an alternative method is used
(#1459, #1462, #1466) (#1459, #1462, #1466)
* Removed flags from HTTP/3 frames (#1388, #1398) * Removed flags from HTTP/3 frames (#1388, #1398)
* Reserved frame types and settings for use in preserving * Reserved frame types and settings for use in preserving
extensibility (#1333, #1446) extensibility (#1333, #1446)
* Added general error code (#1391, #1397) * Added general error code (#1391, #1397)
* Unidirectional streams carry a type byte and are extensible * Unidirectional streams carry a type byte and are extensible
(#910,#1359) (#910,#1359)
* Priority mechanism now uses explicit placeholders to enable * Priority mechanism now uses explicit placeholders to enable
persistent structure in the tree (#441,#1421,#1422) persistent structure in the tree (#441,#1421,#1422)
B.19. Since draft-ietf-quic-http-11 B.20. Since draft-ietf-quic-http-11
* Moved QPACK table updates and acknowledgments to dedicated streams * Moved QPACK table updates and acknowledgments to dedicated streams
(#1121, #1122, #1238) (#1121, #1122, #1238)
B.20. Since draft-ietf-quic-http-10 B.21. Since draft-ietf-quic-http-10
* Settings need to be remembered when attempting and accepting 0-RTT * Settings need to be remembered when attempting and accepting 0-RTT
(#1157, #1207) (#1157, #1207)
B.21. Since draft-ietf-quic-http-09 B.22. Since draft-ietf-quic-http-09
* Selected QCRAM for header compression (#228, #1117) * Selected QCRAM for header compression (#228, #1117)
* The server_name TLS extension is now mandatory (#296, #495) * The server_name TLS extension is now mandatory (#296, #495)
* Specified handling of unsupported versions in Alt-Svc (#1093, * Specified handling of unsupported versions in Alt-Svc (#1093,
#1097) #1097)
B.22. Since draft-ietf-quic-http-08 B.23. Since draft-ietf-quic-http-08
* Clarified connection coalescing rules (#940, #1024) * Clarified connection coalescing rules (#940, #1024)
B.23. Since draft-ietf-quic-http-07 B.24. Since draft-ietf-quic-http-07
* Changes for integer encodings in QUIC (#595,#905) * Changes for integer encodings in QUIC (#595,#905)
* Use unidirectional streams as appropriate (#515, #240, #281, #886) * Use unidirectional streams as appropriate (#515, #240, #281, #886)
* Improvement to the description of GOAWAY (#604, #898) * Improvement to the description of GOAWAY (#604, #898)
* Improve description of server push usage (#947, #950, #957) * Improve description of server push usage (#947, #950, #957)
B.24. Since draft-ietf-quic-http-06 B.25. Since draft-ietf-quic-http-06
* Track changes in QUIC error code usage (#485) * Track changes in QUIC error code usage (#485)
B.25. Since draft-ietf-quic-http-05 B.26. Since draft-ietf-quic-http-05
* Made push ID sequential, add MAX_PUSH_ID, remove * Made push ID sequential, add MAX_PUSH_ID, remove
SETTINGS_ENABLE_PUSH (#709) SETTINGS_ENABLE_PUSH (#709)
* Guidance about keep-alive and QUIC PINGs (#729) * Guidance about keep-alive and QUIC PINGs (#729)
* Expanded text on GOAWAY and cancellation (#757) * Expanded text on GOAWAY and cancellation (#757)
B.26. Since draft-ietf-quic-http-04 B.27. Since draft-ietf-quic-http-04
* Cite RFC 5234 (#404) * Cite RFC 5234 (#404)
* Return to a single stream per request (#245,#557) * Return to a single stream per request (#245,#557)
* Use separate frame type and settings registries from HTTP/2 (#81) * Use separate frame type and settings registries from HTTP/2 (#81)
* SETTINGS_ENABLE_PUSH instead of SETTINGS_DISABLE_PUSH (#477) * SETTINGS_ENABLE_PUSH instead of SETTINGS_DISABLE_PUSH (#477)
* Restored GOAWAY (#696) * Restored GOAWAY (#696)
* Identify server push using Push ID rather than a stream ID * Identify server push using Push ID rather than a stream ID
(#702,#281) (#702,#281)
* DATA frames cannot be empty (#700) * DATA frames cannot be empty (#700)
B.27. Since draft-ietf-quic-http-03 B.28. Since draft-ietf-quic-http-03
None. None.
B.28. Since draft-ietf-quic-http-02 B.29. Since draft-ietf-quic-http-02
* Track changes in transport draft * Track changes in transport draft
B.29. Since draft-ietf-quic-http-01 B.30. Since draft-ietf-quic-http-01
* SETTINGS changes (#181): * SETTINGS changes (#181):
- SETTINGS can be sent only once at the start of a connection; no - SETTINGS can be sent only once at the start of a connection; no
changes thereafter changes thereafter
- SETTINGS_ACK removed - SETTINGS_ACK removed
- Settings can only occur in the SETTINGS frame a single time - Settings can only occur in the SETTINGS frame a single time
skipping to change at page 70, line 39 skipping to change at page 70, line 35
* Closing the connection control stream or any message control * Closing the connection control stream or any message control
stream is a fatal error (#176) stream is a fatal error (#176)
* HPACK Sequence counter can wrap (#173) * HPACK Sequence counter can wrap (#173)
* 0-RTT guidance added * 0-RTT guidance added
* Guide to differences from HTTP/2 and porting HTTP/2 extensions * Guide to differences from HTTP/2 and porting HTTP/2 extensions
added (#127,#242) added (#127,#242)
B.30. Since draft-ietf-quic-http-00 B.31. Since draft-ietf-quic-http-00
* Changed "HTTP/2-over-QUIC" to "HTTP/QUIC" throughout (#11,#29) * Changed "HTTP/2-over-QUIC" to "HTTP/QUIC" throughout (#11,#29)
* Changed from using HTTP/2 framing within Stream 3 to new framing * Changed from using HTTP/2 framing within Stream 3 to new framing
format and two-stream-per-request model (#71,#72,#73) format and two-stream-per-request model (#71,#72,#73)
* Adopted SETTINGS format from draft-bishop-httpbis-extended- * Adopted SETTINGS format from draft-bishop-httpbis-extended-
settings-01 settings-01
* Reworked SETTINGS_ACK to account for indeterminate inter-stream * Reworked SETTINGS_ACK to account for indeterminate inter-stream
skipping to change at page 71, line 4 skipping to change at page 70, line 49
* Changed from using HTTP/2 framing within Stream 3 to new framing * Changed from using HTTP/2 framing within Stream 3 to new framing
format and two-stream-per-request model (#71,#72,#73) format and two-stream-per-request model (#71,#72,#73)
* Adopted SETTINGS format from draft-bishop-httpbis-extended- * Adopted SETTINGS format from draft-bishop-httpbis-extended-
settings-01 settings-01
* Reworked SETTINGS_ACK to account for indeterminate inter-stream * Reworked SETTINGS_ACK to account for indeterminate inter-stream
order (#75) order (#75)
* Described CONNECT pseudo-method (#95) * Described CONNECT pseudo-method (#95)
* Updated ALPN token and Alt-Svc guidance (#13,#87) * Updated ALPN token and Alt-Svc guidance (#13,#87)
* Application-layer-defined error codes (#19,#74) * Application-layer-defined error codes (#19,#74)
B.31. Since draft-shade-quic-http2-mapping-00 B.32. Since draft-shade-quic-http2-mapping-00
* Adopted as base for draft-ietf-quic-http * Adopted as base for draft-ietf-quic-http
* Updated authors/editors list * Updated authors/editors list
Acknowledgements Acknowledgements
The original authors of this specification were Robbie Shade and Mike The original authors of this specification were Robbie Shade and Mike
Warres. Warres.
 End of changes. 55 change blocks. 
91 lines changed or deleted 96 lines changed or added

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