| draft-ietf-quic-http-21.txt | draft-ietf-quic-http-22.txt | |||
|---|---|---|---|---|
| QUIC M. Bishop, Ed. | QUIC M. Bishop, Ed. | |||
| Internet-Draft Akamai | Internet-Draft Akamai | |||
| Intended status: Standards Track July 08, 2019 | Intended status: Standards Track July 09, 2019 | |||
| Expires: January 9, 2020 | Expires: January 10, 2020 | |||
| Hypertext Transfer Protocol Version 3 (HTTP/3) | Hypertext Transfer Protocol Version 3 (HTTP/3) | |||
| draft-ietf-quic-http-21 | draft-ietf-quic-http-22 | |||
| 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 January 9, 2020. | This Internet-Draft will expire on January 10, 2020. | |||
| 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 3, line 44 ¶ | skipping to change at page 3, line 44 ¶ | |||
| Appendix A. Considerations for Transitioning from HTTP/2 . . . . 50 | Appendix A. Considerations for Transitioning from HTTP/2 . . . . 50 | |||
| A.1. Streams . . . . . . . . . . . . . . . . . . . . . . . . . 50 | A.1. Streams . . . . . . . . . . . . . . . . . . . . . . . . . 50 | |||
| A.2. HTTP Frame Types . . . . . . . . . . . . . . . . . . . . 50 | A.2. HTTP Frame Types . . . . . . . . . . . . . . . . . . . . 50 | |||
| A.2.1. Prioritization Differences . . . . . . . . . . . . . 51 | A.2.1. Prioritization Differences . . . . . . . . . . . . . 51 | |||
| A.2.2. Header Compression Differences . . . . . . . . . . . 51 | A.2.2. Header Compression Differences . . . . . . . . . . . 51 | |||
| A.2.3. Guidance for New Frame Type Definitions . . . . . . . 52 | A.2.3. Guidance for New Frame Type Definitions . . . . . . . 52 | |||
| A.2.4. Mapping Between HTTP/2 and HTTP/3 Frame Types . . . . 52 | A.2.4. Mapping Between HTTP/2 and HTTP/3 Frame Types . . . . 52 | |||
| A.3. HTTP/2 SETTINGS Parameters . . . . . . . . . . . . . . . 53 | A.3. HTTP/2 SETTINGS Parameters . . . . . . . . . . . . . . . 53 | |||
| A.4. HTTP/2 Error Codes . . . . . . . . . . . . . . . . . . . 54 | A.4. HTTP/2 Error Codes . . . . . . . . . . . . . . . . . . . 54 | |||
| Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 55 | Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 55 | |||
| B.1. Since draft-ietf-quic-http-20 . . . . . . . . . . . . . . 55 | B.1. Since draft-ietf-quic-http-21 . . . . . . . . . . . . . . 55 | |||
| B.2. Since draft-ietf-quic-http-19 . . . . . . . . . . . . . . 56 | B.2. Since draft-ietf-quic-http-20 . . . . . . . . . . . . . . 55 | |||
| B.3. Since draft-ietf-quic-http-18 . . . . . . . . . . . . . . 56 | B.3. Since draft-ietf-quic-http-19 . . . . . . . . . . . . . . 56 | |||
| B.4. Since draft-ietf-quic-http-17 . . . . . . . . . . . . . . 57 | B.4. Since draft-ietf-quic-http-18 . . . . . . . . . . . . . . 56 | |||
| B.5. Since draft-ietf-quic-http-16 . . . . . . . . . . . . . . 57 | B.5. Since draft-ietf-quic-http-17 . . . . . . . . . . . . . . 57 | |||
| B.6. Since draft-ietf-quic-http-15 . . . . . . . . . . . . . . 57 | B.6. Since draft-ietf-quic-http-16 . . . . . . . . . . . . . . 57 | |||
| B.7. Since draft-ietf-quic-http-14 . . . . . . . . . . . . . . 58 | B.7. Since draft-ietf-quic-http-15 . . . . . . . . . . . . . . 58 | |||
| B.8. Since draft-ietf-quic-http-13 . . . . . . . . . . . . . . 58 | B.8. Since draft-ietf-quic-http-14 . . . . . . . . . . . . . . 58 | |||
| B.9. Since draft-ietf-quic-http-12 . . . . . . . . . . . . . . 58 | B.9. Since draft-ietf-quic-http-13 . . . . . . . . . . . . . . 58 | |||
| B.10. Since draft-ietf-quic-http-11 . . . . . . . . . . . . . . 59 | B.10. Since draft-ietf-quic-http-12 . . . . . . . . . . . . . . 58 | |||
| B.11. Since draft-ietf-quic-http-10 . . . . . . . . . . . . . . 59 | B.11. Since draft-ietf-quic-http-11 . . . . . . . . . . . . . . 59 | |||
| B.12. Since draft-ietf-quic-http-09 . . . . . . . . . . . . . . 59 | B.12. Since draft-ietf-quic-http-10 . . . . . . . . . . . . . . 59 | |||
| B.13. Since draft-ietf-quic-http-08 . . . . . . . . . . . . . . 59 | B.13. Since draft-ietf-quic-http-09 . . . . . . . . . . . . . . 59 | |||
| B.14. Since draft-ietf-quic-http-07 . . . . . . . . . . . . . . 59 | B.14. Since draft-ietf-quic-http-08 . . . . . . . . . . . . . . 59 | |||
| B.15. Since draft-ietf-quic-http-06 . . . . . . . . . . . . . . 59 | B.15. Since draft-ietf-quic-http-07 . . . . . . . . . . . . . . 59 | |||
| B.16. Since draft-ietf-quic-http-05 . . . . . . . . . . . . . . 59 | B.16. Since draft-ietf-quic-http-06 . . . . . . . . . . . . . . 59 | |||
| B.17. Since draft-ietf-quic-http-04 . . . . . . . . . . . . . . 60 | B.17. Since draft-ietf-quic-http-05 . . . . . . . . . . . . . . 59 | |||
| B.18. Since draft-ietf-quic-http-03 . . . . . . . . . . . . . . 60 | B.18. Since draft-ietf-quic-http-04 . . . . . . . . . . . . . . 60 | |||
| B.19. Since draft-ietf-quic-http-02 . . . . . . . . . . . . . . 60 | B.19. Since draft-ietf-quic-http-03 . . . . . . . . . . . . . . 60 | |||
| B.20. Since draft-ietf-quic-http-01 . . . . . . . . . . . . . . 60 | B.20. Since draft-ietf-quic-http-02 . . . . . . . . . . . . . . 60 | |||
| B.21. Since draft-ietf-quic-http-00 . . . . . . . . . . . . . . 61 | B.21. Since draft-ietf-quic-http-01 . . . . . . . . . . . . . . 60 | |||
| B.22. Since draft-shade-quic-http2-mapping-00 . . . . . . . . . 61 | B.22. Since draft-ietf-quic-http-00 . . . . . . . . . . . . . . 61 | |||
| B.23. Since draft-shade-quic-http2-mapping-00 . . . . . . . . . 61 | ||||
| Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 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. | |||
| skipping to change at page 48, line 29 ¶ | skipping to change at page 48, line 29 ¶ | |||
| 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", draft-ietf-quic- | Header Compression for HTTP over QUIC", draft-ietf-quic- | |||
| qpack-09 (work in progress), July 2019. | qpack-10 (work in progress), July 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-20 (work in progress), July 2019. | transport-22 (work in progress), July 2019. | |||
| [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 55, line 40 ¶ | skipping to change at page 55, line 40 ¶ | |||
| HTTP_1_1_REQUIRED (0xd): HTTP_VERSION_FALLBACK in Section 8.1. | HTTP_1_1_REQUIRED (0xd): HTTP_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.5. | Section 11.5. | |||
| 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-20 | B.1. Since draft-ietf-quic-http-21 | |||
| o No changes | ||||
| B.2. Since draft-ietf-quic-http-20 | ||||
| o Prohibit closing the control stream (#2509, #2666) | o Prohibit closing the control stream (#2509, #2666) | |||
| o Change default priority to use an orphan node (#2502, #2690) | o Change default priority to use an orphan node (#2502, #2690) | |||
| o Exclusive priorities are restored (#2754, #2781) | o Exclusive priorities are restored (#2754, #2781) | |||
| o Restrict use of frames when using CONNECT (#2229, #2702) | o Restrict use of frames when using CONNECT (#2229, #2702) | |||
| o Close and maybe reset streams if a connection error occurs for | o Close and maybe reset streams if a connection error occurs for | |||
| CONNECT (#2228, #2703) | CONNECT (#2228, #2703) | |||
| o Encourage provision of sufficient unidirectional streams for QPACK | o Encourage provision of sufficient unidirectional streams for QPACK | |||
| (#2100, #2529, #2762) | (#2100, #2529, #2762) | |||
| o Allow extensions to use server-initiated bidirectional streams | o Allow extensions to use server-initiated bidirectional streams | |||
| (#2711, #2773) | (#2711, #2773) | |||
| o Clarify use of maximum header list size setting (#2516, #2774) | o Clarify use of maximum header list size setting (#2516, #2774) | |||
| skipping to change at page 56, line 35 ¶ | skipping to change at page 56, line 37 ¶ | |||
| * 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.2. Since draft-ietf-quic-http-19 | B.3. Since draft-ietf-quic-http-19 | |||
| o SETTINGS_NUM_PLACEHOLDERS is 0x9 (#2443,#2530) | o SETTINGS_NUM_PLACEHOLDERS is 0x9 (#2443,#2530) | |||
| o Non-zero bits in the Empty field of the PRIORITY frame MAY be | o Non-zero bits in the Empty field of the PRIORITY frame MAY be | |||
| treated as an error (#2501) | treated as an error (#2501) | |||
| B.3. Since draft-ietf-quic-http-18 | B.4. Since draft-ietf-quic-http-18 | |||
| o Resetting streams following a GOAWAY is recommended, but not | o Resetting streams following a GOAWAY is recommended, but not | |||
| required (#2256,#2457) | required (#2256,#2457) | |||
| o Use variable-length integers throughout (#2437,#2233,#2253,#2275) | o 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 | |||
| o Frame layout switched from Length-Type-Value to Type-Length-Value | o Frame layout switched from Length-Type-Value to Type-Length-Value | |||
| (#2395,#2235) | (#2395,#2235) | |||
| o Specified error code for servers receiving DUPLICATE_PUSH (#2497) | o Specified error code for servers receiving DUPLICATE_PUSH (#2497) | |||
| o Use connection error for invalid PRIORITY (#2507, #2508) | o Use connection error for invalid PRIORITY (#2507, #2508) | |||
| B.4. Since draft-ietf-quic-http-17 | B.5. Since draft-ietf-quic-http-17 | |||
| o HTTP_REQUEST_REJECTED is used to indicate a request can be retried | o HTTP_REQUEST_REJECTED is used to indicate a request can be retried | |||
| (#2106, #2325) | (#2106, #2325) | |||
| o Changed error code for GOAWAY on the wrong stream (#2231, #2343) | o Changed error code for GOAWAY on the wrong stream (#2231, #2343) | |||
| B.5. Since draft-ietf-quic-http-16 | B.6. Since draft-ietf-quic-http-16 | |||
| o Rename "HTTP/QUIC" to "HTTP/3" (#1973) | o Rename "HTTP/QUIC" to "HTTP/3" (#1973) | |||
| o Changes to PRIORITY frame (#1865, #2075) | o 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 57, line 46 ¶ | skipping to change at page 58, line 5 ¶ | |||
| (#1809, #1846, #2038) | (#1809, #1846, #2038) | |||
| o Clarify message processing rules for streams that aren't closed | o Clarify message processing rules for streams that aren't closed | |||
| (#1972, #2003) | (#1972, #2003) | |||
| o Removed reservation of error code 0 and moved HTTP_NO_ERROR to | o Removed reservation of error code 0 and moved HTTP_NO_ERROR to | |||
| this value (#1922) | this value (#1922) | |||
| o Removed prohibition of zero-length DATA frames (#2098) | o Removed prohibition of zero-length DATA frames (#2098) | |||
| B.6. Since draft-ietf-quic-http-15 | B.7. Since draft-ietf-quic-http-15 | |||
| Substantial editorial reorganization; no technical changes. | Substantial editorial reorganization; no technical changes. | |||
| B.7. Since draft-ietf-quic-http-14 | B.8. Since draft-ietf-quic-http-14 | |||
| o Recommend sensible values for QUIC transport parameters | o Recommend sensible values for QUIC transport parameters | |||
| (#1720,#1806) | (#1720,#1806) | |||
| o Define error for missing SETTINGS frame (#1697,#1808) | o Define error for missing SETTINGS frame (#1697,#1808) | |||
| o Setting values are variable-length integers (#1556,#1807) and do | o Setting values are variable-length integers (#1556,#1807) and do | |||
| not have separate maximum values (#1820) | not have separate maximum values (#1820) | |||
| o Expanded discussion of connection closure (#1599,#1717,#1712) | o Expanded discussion of connection closure (#1599,#1717,#1712) | |||
| o HTTP_VERSION_FALLBACK falls back to HTTP/1.1 (#1677,#1685) | o HTTP_VERSION_FALLBACK falls back to HTTP/1.1 (#1677,#1685) | |||
| B.8. Since draft-ietf-quic-http-13 | B.9. Since draft-ietf-quic-http-13 | |||
| o Reserved some frame types for grease (#1333, #1446) | o Reserved some frame types for grease (#1333, #1446) | |||
| o Unknown unidirectional stream types are tolerated, not errors; | o Unknown unidirectional stream types are tolerated, not errors; | |||
| some reserved for grease (#1490, #1525) | some reserved for grease (#1490, #1525) | |||
| o Require settings to be remembered for 0-RTT, prohibit reductions | o Require settings to be remembered for 0-RTT, prohibit reductions | |||
| (#1541, #1641) | (#1541, #1641) | |||
| o Specify behavior for truncated requests (#1596, #1643) | o Specify behavior for truncated requests (#1596, #1643) | |||
| B.9. Since draft-ietf-quic-http-12 | B.10. Since draft-ietf-quic-http-12 | |||
| o TLS SNI extension isn't mandatory if an alternative method is used | o TLS SNI extension isn't mandatory if an alternative method is used | |||
| (#1459, #1462, #1466) | (#1459, #1462, #1466) | |||
| o Removed flags from HTTP/3 frames (#1388, #1398) | o Removed flags from HTTP/3 frames (#1388, #1398) | |||
| o Reserved frame types and settings for use in preserving | o Reserved frame types and settings for use in preserving | |||
| extensibility (#1333, #1446) | extensibility (#1333, #1446) | |||
| o Added general error code (#1391, #1397) | o Added general error code (#1391, #1397) | |||
| o Unidirectional streams carry a type byte and are extensible | o Unidirectional streams carry a type byte and are extensible | |||
| (#910,#1359) | (#910,#1359) | |||
| o Priority mechanism now uses explicit placeholders to enable | o 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.10. Since draft-ietf-quic-http-11 | B.11. Since draft-ietf-quic-http-11 | |||
| o Moved QPACK table updates and acknowledgments to dedicated streams | o Moved QPACK table updates and acknowledgments to dedicated streams | |||
| (#1121, #1122, #1238) | (#1121, #1122, #1238) | |||
| B.11. Since draft-ietf-quic-http-10 | B.12. Since draft-ietf-quic-http-10 | |||
| o Settings need to be remembered when attempting and accepting 0-RTT | o Settings need to be remembered when attempting and accepting 0-RTT | |||
| (#1157, #1207) | (#1157, #1207) | |||
| B.12. Since draft-ietf-quic-http-09 | B.13. Since draft-ietf-quic-http-09 | |||
| o Selected QCRAM for header compression (#228, #1117) | o Selected QCRAM for header compression (#228, #1117) | |||
| o The server_name TLS extension is now mandatory (#296, #495) | o The server_name TLS extension is now mandatory (#296, #495) | |||
| o Specified handling of unsupported versions in Alt-Svc (#1093, | o Specified handling of unsupported versions in Alt-Svc (#1093, | |||
| #1097) | #1097) | |||
| B.13. Since draft-ietf-quic-http-08 | B.14. Since draft-ietf-quic-http-08 | |||
| o Clarified connection coalescing rules (#940, #1024) | o Clarified connection coalescing rules (#940, #1024) | |||
| B.14. Since draft-ietf-quic-http-07 | B.15. Since draft-ietf-quic-http-07 | |||
| o Changes for integer encodings in QUIC (#595,#905) | o Changes for integer encodings in QUIC (#595,#905) | |||
| o Use unidirectional streams as appropriate (#515, #240, #281, #886) | o Use unidirectional streams as appropriate (#515, #240, #281, #886) | |||
| o Improvement to the description of GOAWAY (#604, #898) | o Improvement to the description of GOAWAY (#604, #898) | |||
| o Improve description of server push usage (#947, #950, #957) | o Improve description of server push usage (#947, #950, #957) | |||
| B.15. Since draft-ietf-quic-http-06 | B.16. Since draft-ietf-quic-http-06 | |||
| o Track changes in QUIC error code usage (#485) | o Track changes in QUIC error code usage (#485) | |||
| B.16. Since draft-ietf-quic-http-05 | B.17. Since draft-ietf-quic-http-05 | |||
| o Made push ID sequential, add MAX_PUSH_ID, remove | o Made push ID sequential, add MAX_PUSH_ID, remove | |||
| SETTINGS_ENABLE_PUSH (#709) | SETTINGS_ENABLE_PUSH (#709) | |||
| o Guidance about keep-alive and QUIC PINGs (#729) | o Guidance about keep-alive and QUIC PINGs (#729) | |||
| o Expanded text on GOAWAY and cancellation (#757) | o Expanded text on GOAWAY and cancellation (#757) | |||
| B.17. Since draft-ietf-quic-http-04 | B.18. Since draft-ietf-quic-http-04 | |||
| o Cite RFC 5234 (#404) | o Cite RFC 5234 (#404) | |||
| o Return to a single stream per request (#245,#557) | o Return to a single stream per request (#245,#557) | |||
| o Use separate frame type and settings registries from HTTP/2 (#81) | o Use separate frame type and settings registries from HTTP/2 (#81) | |||
| o SETTINGS_ENABLE_PUSH instead of SETTINGS_DISABLE_PUSH (#477) | o SETTINGS_ENABLE_PUSH instead of SETTINGS_DISABLE_PUSH (#477) | |||
| o Restored GOAWAY (#696) | o Restored GOAWAY (#696) | |||
| o Identify server push using Push ID rather than a stream ID | o Identify server push using Push ID rather than a stream ID | |||
| (#702,#281) | (#702,#281) | |||
| o DATA frames cannot be empty (#700) | o DATA frames cannot be empty (#700) | |||
| B.18. Since draft-ietf-quic-http-03 | B.19. Since draft-ietf-quic-http-03 | |||
| None. | None. | |||
| B.19. Since draft-ietf-quic-http-02 | B.20. Since draft-ietf-quic-http-02 | |||
| o Track changes in transport draft | o Track changes in transport draft | |||
| B.20. Since draft-ietf-quic-http-01 | B.21. Since draft-ietf-quic-http-01 | |||
| o SETTINGS changes (#181): | o 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 61, line 7 ¶ | skipping to change at page 61, line 7 ¶ | |||
| o Closing the connection control stream or any message control | o Closing the connection control stream or any message control | |||
| stream is a fatal error (#176) | stream is a fatal error (#176) | |||
| o HPACK Sequence counter can wrap (#173) | o HPACK Sequence counter can wrap (#173) | |||
| o 0-RTT guidance added | o 0-RTT guidance added | |||
| o Guide to differences from HTTP/2 and porting HTTP/2 extensions | o Guide to differences from HTTP/2 and porting HTTP/2 extensions | |||
| added (#127,#242) | added (#127,#242) | |||
| B.21. Since draft-ietf-quic-http-00 | B.22. Since draft-ietf-quic-http-00 | |||
| o Changed "HTTP/2-over-QUIC" to "HTTP/QUIC" throughout (#11,#29) | o Changed "HTTP/2-over-QUIC" to "HTTP/QUIC" throughout (#11,#29) | |||
| o Changed from using HTTP/2 framing within Stream 3 to new framing | o 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) | |||
| o Adopted SETTINGS format from draft-bishop-httpbis-extended- | o Adopted SETTINGS format from draft-bishop-httpbis-extended- | |||
| settings-01 | settings-01 | |||
| o Reworked SETTINGS_ACK to account for indeterminate inter-stream | o Reworked SETTINGS_ACK to account for indeterminate inter-stream | |||
| order (#75) | order (#75) | |||
| o Described CONNECT pseudo-method (#95) | o Described CONNECT pseudo-method (#95) | |||
| o Updated ALPN token and Alt-Svc guidance (#13,#87) | o Updated ALPN token and Alt-Svc guidance (#13,#87) | |||
| o Application-layer-defined error codes (#19,#74) | o Application-layer-defined error codes (#19,#74) | |||
| B.22. Since draft-shade-quic-http2-mapping-00 | B.23. Since draft-shade-quic-http2-mapping-00 | |||
| o Adopted as base for draft-ietf-quic-http | o Adopted as base for draft-ietf-quic-http | |||
| o Updated authors/editors list | o 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. 31 change blocks. | ||||
| 52 lines changed or deleted | 56 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/ | ||||