You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: draft-ietf-httpbis-optimistic-upgrade.md
+15-3Lines changed: 15 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,7 +39,7 @@ informative:
39
39
40
40
--- abstract
41
41
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.
43
43
44
44
45
45
--- middle
@@ -48,6 +48,17 @@ In HTTP/1.1, the client can request a change to a new protocol on the existing c
48
48
49
49
{::boilerplate bcp14-tagged}
50
50
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
+
51
62
# Background {#background}
52
63
53
64
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
130
141
131
142
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}}).
132
143
133
-
## "connect-udp"
144
+
## "connect-udp" {#connect-udp}
134
145
135
146
{{Section 5 of !CONNECT-UDP=RFC9298}} says:
136
147
@@ -163,7 +174,7 @@ The other upgrade tokens mentioned in {{existing}} do not preserve HTTP semantic
163
174
164
175
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.
165
176
166
-
# Guidance for HTTP CONNECT
177
+
# Guidance for HTTP CONNECT {#connect}
167
178
168
179
This document updates RFC 9112 to include the remaining text of this section. The requirements in this section apply only to HTTP/1.1.
169
180
@@ -196,6 +207,7 @@ This document benefited from valuable reviews and suggestions by:
0 commit comments