draft-ietf-quic-http-26.txt   draft-ietf-quic-http-27.txt 
QUIC M. Bishop, Ed. QUIC M. Bishop, Ed.
Internet-Draft Akamai Internet-Draft Akamai
Intended status: Standards Track 21 February 2020 Intended status: Standards Track 21 February 2020
Expires: 24 August 2020 Expires: 24 August 2020
Hypertext Transfer Protocol Version 3 (HTTP/3) Hypertext Transfer Protocol Version 3 (HTTP/3)
draft-ietf-quic-http-26 draft-ietf-quic-http-27
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 3, line 41 skipping to change at page 3, line 41
Appendix A. Considerations for Transitioning from HTTP/2 . . . . 48 Appendix A. Considerations for Transitioning from HTTP/2 . . . . 48
A.1. Streams . . . . . . . . . . . . . . . . . . . . . . . . . 48 A.1. Streams . . . . . . . . . . . . . . . . . . . . . . . . . 48
A.2. HTTP Frame Types . . . . . . . . . . . . . . . . . . . . 49 A.2. HTTP Frame Types . . . . . . . . . . . . . . . . . . . . 49
A.2.1. Prioritization Differences . . . . . . . . . . . . . 49 A.2.1. Prioritization Differences . . . . . . . . . . . . . 49
A.2.2. Header Compression Differences . . . . . . . . . . . 49 A.2.2. Header Compression Differences . . . . . . . . . . . 49
A.2.3. Guidance for New Frame Type Definitions . . . . . . . 50 A.2.3. Guidance for New Frame Type Definitions . . . . . . . 50
A.2.4. Mapping Between HTTP/2 and HTTP/3 Frame Types . . . . 50 A.2.4. Mapping Between HTTP/2 and HTTP/3 Frame Types . . . . 50
A.3. HTTP/2 SETTINGS Parameters . . . . . . . . . . . . . . . 51 A.3. HTTP/2 SETTINGS Parameters . . . . . . . . . . . . . . . 51
A.4. HTTP/2 Error Codes . . . . . . . . . . . . . . . . . . . 52 A.4. HTTP/2 Error Codes . . . . . . . . . . . . . . . . . . . 52
Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 53 Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 53
B.1. Since draft-ietf-quic-http-25 . . . . . . . . . . . . . . 53 B.1. Since draft-ietf-quic-http-26 . . . . . . . . . . . . . . 53
B.2. Since draft-ietf-quic-http-24 . . . . . . . . . . . . . . 53 B.2. Since draft-ietf-quic-http-25 . . . . . . . . . . . . . . 53
B.3. Since draft-ietf-quic-http-23 . . . . . . . . . . . . . . 54 B.3. Since draft-ietf-quic-http-24 . . . . . . . . . . . . . . 54
B.4. Since draft-ietf-quic-http-22 . . . . . . . . . . . . . . 54 B.4. Since draft-ietf-quic-http-23 . . . . . . . . . . . . . . 54
B.5. Since draft-ietf-quic-http-21 . . . . . . . . . . . . . . 55 B.5. Since draft-ietf-quic-http-22 . . . . . . . . . . . . . . 54
B.6. Since draft-ietf-quic-http-20 . . . . . . . . . . . . . . 55 B.6. Since draft-ietf-quic-http-21 . . . . . . . . . . . . . . 55
B.7. Since draft-ietf-quic-http-19 . . . . . . . . . . . . . . 56 B.7. Since draft-ietf-quic-http-20 . . . . . . . . . . . . . . 55
B.8. Since draft-ietf-quic-http-18 . . . . . . . . . . . . . . 56 B.8. Since draft-ietf-quic-http-19 . . . . . . . . . . . . . . 56
B.9. Since draft-ietf-quic-http-17 . . . . . . . . . . . . . . 56 B.9. Since draft-ietf-quic-http-18 . . . . . . . . . . . . . . 56
B.10. Since draft-ietf-quic-http-16 . . . . . . . . . . . . . . 56 B.10. Since draft-ietf-quic-http-17 . . . . . . . . . . . . . . 56
B.11. Since draft-ietf-quic-http-15 . . . . . . . . . . . . . . 57 B.11. Since draft-ietf-quic-http-16 . . . . . . . . . . . . . . 57
B.12. Since draft-ietf-quic-http-14 . . . . . . . . . . . . . . 57 B.12. Since draft-ietf-quic-http-15 . . . . . . . . . . . . . . 57
B.13. Since draft-ietf-quic-http-13 . . . . . . . . . . . . . . 57 B.13. Since draft-ietf-quic-http-14 . . . . . . . . . . . . . . 57
B.14. Since draft-ietf-quic-http-12 . . . . . . . . . . . . . . 57 B.14. Since draft-ietf-quic-http-13 . . . . . . . . . . . . . . 57
B.15. Since draft-ietf-quic-http-11 . . . . . . . . . . . . . . 58 B.15. Since draft-ietf-quic-http-12 . . . . . . . . . . . . . . 58
B.16. Since draft-ietf-quic-http-10 . . . . . . . . . . . . . . 58 B.16. Since draft-ietf-quic-http-11 . . . . . . . . . . . . . . 58
B.17. Since draft-ietf-quic-http-09 . . . . . . . . . . . . . . 58 B.17. Since draft-ietf-quic-http-10 . . . . . . . . . . . . . . 58
B.18. Since draft-ietf-quic-http-08 . . . . . . . . . . . . . . 58 B.18. Since draft-ietf-quic-http-09 . . . . . . . . . . . . . . 58
B.19. Since draft-ietf-quic-http-07 . . . . . . . . . . . . . . 58 B.19. Since draft-ietf-quic-http-08 . . . . . . . . . . . . . . 59
B.20. Since draft-ietf-quic-http-06 . . . . . . . . . . . . . . 59 B.20. Since draft-ietf-quic-http-07 . . . . . . . . . . . . . . 59
B.21. Since draft-ietf-quic-http-05 . . . . . . . . . . . . . . 59 B.21. Since draft-ietf-quic-http-06 . . . . . . . . . . . . . . 59
B.22. Since draft-ietf-quic-http-04 . . . . . . . . . . . . . . 59 B.22. Since draft-ietf-quic-http-05 . . . . . . . . . . . . . . 59
B.23. Since draft-ietf-quic-http-03 . . . . . . . . . . . . . . 59 B.23. Since draft-ietf-quic-http-04 . . . . . . . . . . . . . . 59
B.24. Since draft-ietf-quic-http-02 . . . . . . . . . . . . . . 59 B.24. Since draft-ietf-quic-http-03 . . . . . . . . . . . . . . 59
B.25. Since draft-ietf-quic-http-01 . . . . . . . . . . . . . . 59 B.25. Since draft-ietf-quic-http-02 . . . . . . . . . . . . . . 60
B.26. Since draft-ietf-quic-http-00 . . . . . . . . . . . . . . 60 B.26. Since draft-ietf-quic-http-01 . . . . . . . . . . . . . . 60
B.27. Since draft-shade-quic-http2-mapping-00 . . . . . . . . . 60 B.27. Since draft-ietf-quic-http-00 . . . . . . . . . . . . . . 60
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 60 B.28. Since draft-shade-quic-http2-mapping-00 . . . . . . . . . 61
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 61
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 61 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 61
1. Introduction 1. Introduction
HTTP semantics are used for a broad range of services on the HTTP semantics are used for a broad range of services on the
Internet. These semantics have commonly been used with two different Internet. These semantics have commonly been used with two different
TCP mappings, HTTP/1.1 and HTTP/2. HTTP/3 supports the same TCP mappings, HTTP/1.1 and HTTP/2. HTTP/3 supports the same
semantics over a new transport protocol, QUIC. semantics over a new transport protocol, QUIC.
1.1. Prior versions of HTTP 1.1. Prior versions of HTTP
skipping to change at page 22, line 9 skipping to change at page 22, line 9
SHOULD use the H3_NO_ERROR code when closing the connection. SHOULD use the H3_NO_ERROR code when closing the connection.
If a client has consumed all available bidirectional stream IDs with If a client has consumed all available bidirectional stream IDs with
requests, the server need not send a GOAWAY frame, since the client requests, the server need not send a GOAWAY frame, since the client
is unable to make further requests. is unable to make further requests.
5.3. Immediate Application Closure 5.3. Immediate Application Closure
An HTTP/3 implementation can immediately close the QUIC connection at An HTTP/3 implementation can immediately close the QUIC connection at
any time. This results in sending a QUIC CONNECTION_CLOSE frame to any time. This results in sending a QUIC CONNECTION_CLOSE frame to
the peer; the error code in this frame indicates to the peer why the the peer indicating that the application layer has terminated the
connection is being closed. See Section 8 for error codes which can connection. The application error code in this frame indicates to
be used when closing a connection. the peer why the connection is being closed. See Section 8 for error
codes which can be used when closing a connection in HTTP/3.
Before closing the connection, a GOAWAY MAY be sent to allow the Before closing the connection, a GOAWAY MAY be sent to allow the
client to retry some requests. Including the GOAWAY frame in the client to retry some requests. Including the GOAWAY frame in the
same packet as the QUIC CONNECTION_CLOSE frame improves the chances same packet as the QUIC CONNECTION_CLOSE frame improves the chances
of the frame being received by clients. of the frame being received by clients.
5.4. Transport Closure 5.4. Transport Closure
For various reasons, the QUIC transport could indicate to the For various reasons, the QUIC transport could indicate to the
application layer that the connection has terminated. This might be application layer that the connection has terminated. This might be
skipping to change at page 46, line 21 skipping to change at page 46, line 21
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>.
[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>.
[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-13, 21 February Internet-Draft, draft-ietf-quic-qpack-14, 21 February
2020, 2020,
<https://tools.ietf.org/html/draft-ietf-quic-qpack-13>. <https://tools.ietf.org/html/draft-ietf-quic-qpack-14>.
[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-26, 21 February Internet-Draft, draft-ietf-quic-transport-27, 21 February
2020, <https://tools.ietf.org/html/draft-ietf-quic- 2020, <https://tools.ietf.org/html/draft-ietf-quic-
transport-26>. transport-27>.
[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>.
skipping to change at page 53, line 40 skipping to change at page 53, line 40
H3_1_1_REQUIRED (0xd): H3_VERSION_FALLBACK in Section 8.1. H3_1_1_REQUIRED (0xd): H3_VERSION_FALLBACK in Section 8.1.
Error codes need to be defined for HTTP/2 and HTTP/3 separately. See Error codes need to be defined for HTTP/2 and HTTP/3 separately. See
Section 11.2.3. Section 11.2.3.
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-25 B.1. Since draft-ietf-quic-http-26
* No changes
B.2. 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.2. Since draft-ietf-quic-http-24 B.3. 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.3. Since draft-ietf-quic-http-23 B.4. 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.4. Since draft-ietf-quic-http-22 B.5. 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 55, line 11 skipping to change at page 55, line 17
* 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.5. Since draft-ietf-quic-http-21 B.6. Since draft-ietf-quic-http-21
No changes No changes
B.6. Since draft-ietf-quic-http-20 B.7. 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 55, line 47 skipping to change at page 56, line 4
- 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.7. Since draft-ietf-quic-http-19 B.8. 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.8. Since draft-ietf-quic-http-18 B.9. 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.9. Since draft-ietf-quic-http-17 B.10. 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.10. Since draft-ietf-quic-http-16 B.11. 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
* Define DUPLICATE_PUSH frame to refer to another PUSH_PROMISE * Define DUPLICATE_PUSH frame to refer to another PUSH_PROMISE
(#2072) (#2072)
* Set defaults for settings, allow request before receiving SETTINGS * Set defaults for settings, allow request before receiving SETTINGS
(#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.11. Since draft-ietf-quic-http-15 B.12. Since draft-ietf-quic-http-15
Substantial editorial reorganization; no technical changes. Substantial editorial reorganization; no technical changes.
B.12. Since draft-ietf-quic-http-14 B.13. 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)
* HTTP_VERSION_FALLBACK falls back to HTTP/1.1 (#1677,#1685) * HTTP_VERSION_FALLBACK falls back to HTTP/1.1 (#1677,#1685)
B.13. Since draft-ietf-quic-http-13 B.14. 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.14. Since draft-ietf-quic-http-12 B.15. 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.15. Since draft-ietf-quic-http-11 B.16. 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.16. Since draft-ietf-quic-http-10 B.17. 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.17. Since draft-ietf-quic-http-09 B.18. 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.18. Since draft-ietf-quic-http-08 B.19. Since draft-ietf-quic-http-08
* Clarified connection coalescing rules (#940, #1024) * Clarified connection coalescing rules (#940, #1024)
B.19. Since draft-ietf-quic-http-07 B.20. 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.20. Since draft-ietf-quic-http-06 B.21. Since draft-ietf-quic-http-06
* Track changes in QUIC error code usage (#485) * Track changes in QUIC error code usage (#485)
B.21. Since draft-ietf-quic-http-05 B.22. 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.22. Since draft-ietf-quic-http-04 B.23. 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.23. Since draft-ietf-quic-http-03 B.24. Since draft-ietf-quic-http-03
None. None.
B.24. Since draft-ietf-quic-http-02 B.25. Since draft-ietf-quic-http-02
* Track changes in transport draft * Track changes in transport draft
B.25. Since draft-ietf-quic-http-01 B.26. 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
- Boolean format updated - Boolean format updated
* Alt-Svc parameter changed from "v" to "quic"; format updated * Alt-Svc parameter changed from "v" to "quic"; format updated
(#229) (#229)
* 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.26. Since draft-ietf-quic-http-00 B.27. 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
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.27. Since draft-shade-quic-http2-mapping-00 B.28. 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. 39 change blocks. 
65 lines changed or deleted 73 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/