Skip to content

Commit 150de04

Browse files
authored
Merge pull request #3246 from httpwg/bemasc-gorry-comments
Incorporate comments from Gorry Fairhurst
2 parents 97852dc + ae6203d commit 150de04

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

draft-ietf-httpbis-optimistic-upgrade.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ informative:
3939

4040
--- abstract
4141

42-
In HTTP/1.1, the client can request a change to a new protocol on the existing connection. This document discusses the security considerations that apply to data sent by the client before this request is confirmed, and updates RFC 9112 and RFC 9298 to avoid related security issues.
42+
In HTTP/1.1, the client can request a change to a new protocol on the existing connection. This document discusses the security considerations that apply to data sent by the client before this request is confirmed, and adds new requirements to RFC 9112 and RFC 9298 to avoid related security issues.
4343

4444

4545
--- middle
@@ -48,6 +48,17 @@ In HTTP/1.1, the client can request a change to a new protocol on the existing c
4848

4949
{::boilerplate bcp14-tagged}
5050

51+
# Overview
52+
53+
This document discusses certain security considerations that arise when switching from HTTP/1.1 to a different protocol on the same connection. It provides:
54+
55+
* A review of the relevant standards.
56+
* A discussion of the security risks that may apply if a client sends data before the transition is confirmed.
57+
* Security evaluation of existing upgrade tokens.
58+
* Guidance for implementations and future standards documents.
59+
60+
Updates to RFC 9112 and RFC 9298, including new normative requirements, are provided in {{connect}} and {{connect-udp}}.
61+
5162
# Background {#background}
5263

5364
In HTTP/1.1 {{RFC9112}} and later, a single connection can be used for many requests. In HTTP/2 {{RFC9113}} and HTTP/3 {{RFC9114}}, these requests can be multiplexed, as each request is distinguished explicitly by its stream ID. However, in HTTP/1.1, requests are strictly sequential, and each new request is distinguished implicitly by the closure of the preceding request.
@@ -130,7 +141,7 @@ The "TLS" family of upgrade tokens was defined in {{?RFC2817}}, which correctly
130141

131142
Thus, optimistic use of HTTP Upgrade is already forbidden in the WebSocket protocol. Additionally, the WebSocket protocol requires high-entropy masking of client-to-server frames ({{Section 5.1 of ?WEBSOCKET}}).
132143

133-
## "connect-udp"
144+
## "connect-udp" {#connect-udp}
134145

135146
{{Section 5 of !CONNECT-UDP=RFC9298}} says:
136147

@@ -163,7 +174,7 @@ The other upgrade tokens mentioned in {{existing}} do not preserve HTTP semantic
163174

164175
Future specifications for upgrade tokens should restrict their use to GET requests with no content if the HTTP method is otherwise irrelevant and the request does not need to carry any message content. This improves consistency with other upgrade tokens and simplifies server implementation.
165176

166-
# Guidance for HTTP CONNECT
177+
# Guidance for HTTP CONNECT {#connect}
167178

168179
This document updates RFC 9112 to include the remaining text of this section. The requirements in this section apply only to HTTP/1.1.
169180

@@ -196,6 +207,7 @@ This document benefited from valuable reviews and suggestions by:
196207

197208
* Mike Bishop
198209
* Mohamed Boucadair
210+
* Gorry Fairhurst
199211
* Mark Nottingham
200212
* Kazuho Oku
201213
* Lucas Pardue

0 commit comments

Comments
 (0)