idnits 2.17.1 draft-hamilton-httpbis-h3-websockets-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (1 September 2021) is 960 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- No issues found here. Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 HTTP R. Hamilton 3 Internet-Draft Google 4 Intended status: Informational 1 September 2021 5 Expires: 5 March 2022 7 Bootstrapping WebSockets with HTTP/3 8 draft-hamilton-httpbis-h3-websockets-01 10 Abstract 12 The mechanism for running the WebSocket Protocol over a single stream 13 of an HTTP/2 connection is equally applicable to HTTP/3, but needs to 14 be separately registered. This document describes the mechanism for 15 HTTP/3. 17 Discussion Venues 19 This note is to be removed before publishing as an RFC. 21 Discussion of this document takes place on the HTTP Working Group 22 mailing list (ietf-http-wg@w3.org), which is archived at 23 http://lists.w3.org/Archives/Public/ietf-http-wg/. 25 Source for this draft and an issue tracker can be found at 26 https://github.com/RyanTheOptimist/httpbis-h3-websockets. 28 Status of This Memo 30 This Internet-Draft is submitted in full conformance with the 31 provisions of BCP 78 and BCP 79. 33 Internet-Drafts are working documents of the Internet Engineering 34 Task Force (IETF). Note that other groups may also distribute 35 working documents as Internet-Drafts. The list of current Internet- 36 Drafts is at https://datatracker.ietf.org/drafts/current/. 38 Internet-Drafts are draft documents valid for a maximum of six months 39 and may be updated, replaced, or obsoleted by other documents at any 40 time. It is inappropriate to use Internet-Drafts as reference 41 material or to cite them other than as "work in progress." 43 This Internet-Draft will expire on 5 March 2022. 45 Copyright Notice 47 Copyright (c) 2021 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 52 license-info) in effect on the date of publication of this document. 53 Please review these documents carefully, as they describe your rights 54 and restrictions with respect to this document. Code Components 55 extracted from this document must include Simplified BSD License text 56 as described in Section 4.e of the Trust Legal Provisions and are 57 provided without warranty as described in the Simplified BSD License. 59 Table of Contents 61 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 62 2. Conventions and Definitions . . . . . . . . . . . . . . . . . 2 63 3. Websockets Upgrade over HTTP/3 . . . . . . . . . . . . . . . 2 64 4. Security Considerations . . . . . . . . . . . . . . . . . . . 3 65 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 3 66 6. Normative References . . . . . . . . . . . . . . . . . . . . 3 67 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 4 68 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 4 70 1. Introduction 72 [RFC8441] defines an extension to HTTP/2 which is also useful in 73 HTTP/3. This extension makes use of an HTTP/2 setting. Appendix A.3 74 of [HTTP3] describes the required updates for HTTP/2 settings to be 75 used with HTTP/3. 77 2. Conventions and Definitions 79 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 80 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 81 "OPTIONAL" in this document are to be interpreted as described in 82 BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all 83 capitals, as shown here. 85 3. Websockets Upgrade over HTTP/3 87 [RFC8441] defines a mechanism for running the WebSocket Protocol 88 [RFC6455] over a single stream of an HTTP/2 connection. It defines 89 an Extended CONNECT method which specifies a new ":protocol" pseudo 90 header field and new semantics for the ":path" and ":authority" 91 pseudo header fields. It also defines a new HTTP/2 SETTING sent by a 92 server to allow the client to use Extended CONNECT. 94 The HTTP/3 stream closure is also analogous to the TCP connection 95 closure of [RFC6455]. Orderly TCP-level closures are represented as 96 a FIN bit on the stream (Section 4.2 of [HTTP3]). RST exceptions are 97 represented with an stream error (Section 8 of [HTTP3]) of type 98 H3_REQUEST_CANCELLED (Section 8.1 of [HTTP3]) 100 The semantics of the headers and SETTING are identical to those in 101 HTTP/2 as defined [RFC8441]. Appendix A.3 of [HTTP3] requires thatt 102 HTTP/3 settings be registered separately for HTTP/3. The 103 SETTINGS_ENABLE_CONNECT_PROTOCOL value is 0x08 (decimal 8), as in 104 HTTP/2. 106 4. Security Considerations 108 This document introduces no new security considerations beyond those 109 discussed in [RFC8841]. 111 5. IANA Considerations 113 This document registers a new setting in the "HTTP/3 Settings" 114 registry ([HTTP3]). 116 +==================================+======+===============+=========+ 117 | Setting Name |Value | Specification | Default | 118 +==================================+======+===============+=========+ 119 | SETTINGS_ENABLE_CONNECT_PROTOCOL | 0x08 | This document | 0 | 120 +----------------------------------+------+---------------+---------+ 122 Table 1 124 6. Normative References 126 [HTTP3] Bishop, M., "Hypertext Transfer Protocol Version 3 127 (HTTP/3)", Work in Progress, Internet-Draft, draft-ietf- 128 quic-http-34, 2 February 2021, 129 . 132 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 133 Requirement Levels", BCP 14, RFC 2119, 134 DOI 10.17487/RFC2119, March 1997, 135 . 137 [RFC6455] Fette, I. and A. Melnikov, "The WebSocket Protocol", 138 RFC 6455, DOI 10.17487/RFC6455, December 2011, 139 . 141 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 142 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 143 May 2017, . 145 [RFC8441] McManus, P., "Bootstrapping WebSockets with HTTP/2", 146 RFC 8441, DOI 10.17487/RFC8441, September 2018, 147 . 149 [RFC8841] Holmberg, C., Shpount, R., Loreto, S., and G. Camarillo, 150 "Session Description Protocol (SDP) Offer/Answer 151 Procedures for Stream Control Transmission Protocol (SCTP) 152 over Datagram Transport Layer Security (DTLS) Transport", 153 RFC 8841, DOI 10.17487/RFC8841, January 2021, 154 . 156 Acknowledgments 158 TODO acknowledge. 160 Author's Address 162 Ryan Hamilton 163 Google 165 Email: rch@google.com