Skip to content

Commit 9fb6357

Browse files
authored
Merge branch 'main' into bemasc-abrupt-tls
2 parents 3cc33c6 + c1ac271 commit 9fb6357

7 files changed

+347
-157
lines changed

draft-ietf-httpbis-incremental.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ author:
2626
normative:
2727

2828
informative:
29+
EXTRA-STATUS: RFC6585
2930
PROXY-STATUS: RFC9209
3031
SSE:
3132
target: https://html.spec.whatwg.org/multipage/server-sent-events.html
@@ -58,12 +59,12 @@ the server continually sends notifications as they become available.
5859

5960
In the case of Chunked Oblivious HTTP Messages
6061
{{?CHUNKED-OHTTP=I-D.ietf-ohai-chunked-ohttp}}, the client opens an HTTP request
61-
and incrementally sends application messages, while the server can start responding
62+
and incrementally sends application data, while the server can start responding
6263
even before the HTTP request is fully complete. In this way, the HTTP
6364
request-response pair could create what is, in effect, a bi-directional
6465
communication channel.
6566

66-
Applications that rely on incremental delivery of messages are fragile when HTTP intermediaries are involved.
67+
Applications that rely on incremental delivery of data are fragile when HTTP intermediaries are involved.
6768
This is because HTTP intermediaries are not only permitted but are frequently
6869
deployed to buffer complete HTTP messages before forwarding them downstream
6970
({{Section 7.6 of HTTP}}).
@@ -114,6 +115,11 @@ arrive. As the Incremental header field indicates only how the message content i
114115
to be forwarded, intermediaries can still buffer the entire header and trailer
115116
sections of the message before forwarding them downstream.
116117

118+
The request to use incremental forwarding also applies to HTTP implementations.
119+
Though most HTTP APIs provide the ability to incrementally transfer message content,
120+
those that do not for any reason, SHOULD use the presence of the Incremental
121+
header field to reduce or disable buffering.
122+
117123
The Incremental HTTP header field applies to each HTTP message. Therefore, if
118124
both the HTTP request and response need to be forwarded incrementally, the
119125
Incremental HTTP header field MUST be set for both the HTTP request and the
@@ -148,8 +154,9 @@ is reached. This approach helps balance the processing of different types of
148154
requests and maintains service availability across all requests.
149155

150156
When rejecting incremental requests due to reaching the concurrency limit,
151-
intermediaries SHOULD respond with a 503 Service Unavailable error, accompanied
152-
by a connection_limit_reached Proxy-Status response header field
157+
intermediaries SHOULD respond with a 429 Too Many Requests error
158+
({{Section 4 of EXTRA-STATUS}}),
159+
accompanied by a connection_limit_reached Proxy-Status response header field
153160
({{Section 2.3.12 of PROXY-STATUS}}).
154161

155162
For performance and efficiency reasons, a small amount of buffering might be

draft-ietf-httpbis-layered-cookies.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -520,9 +520,6 @@ represented as the number of seconds until the cookie expires. The user agent is
520520
not required to retain the cookie for the specified duration. In fact, user
521521
agents often evict cookies due to memory pressure or privacy concerns.
522522

523-
NOTE: Some existing user agents do not support the Max-Age attribute. User
524-
agents that do not support the Max-Age attribute ignore the attribute.
525-
526523
If a cookie has both the Max-Age and the Expires attribute, the Max-Age
527524
attribute has precedence and controls the expiration date of the cookie. If a
528525
cookie has neither the Max-Age nor the Expires attribute, the user agent
@@ -679,10 +676,10 @@ This helps developers and server operators to know that the cookie was set using
679676
a `Set-Cookie` header, and is limited in scope to HTTP requests.
680677

681678

682-
#### The "__HostHttp-" prefix
679+
#### The "__Host-Http-" prefix
683680

684681
If a cookie's name begins with a case-sensitive match for the string
685-
`__HostHttp-`, then the cookie will have been set with a `Secure` attribute, an
682+
`__Host-Http-`, then the cookie will have been set with a `Secure` attribute, an
686683
`HttpOnly` attribute, a `Path` attribute with a value of `/`, and no `Domain` attribute.
687684

688685
This helps developers and server operators to know that the cookie was set using
@@ -1305,7 +1302,7 @@ boolean _httpOnlyAllowed_, boolean _allowNonHostOnlyCookieForPublicSuffix_, and
13051302

13061303
1. If _cookie_'s name, byte-lowercased, starts with `__http-` and _cookie_ is not Http-prefix compatible, then return null.
13071304

1308-
1. If _cookie_'s name, byte-lowercased, starts with `__hosthttp-` and _cookie_ is not both Host-prefix compatible and Http-prefix compatible, then return null.
1305+
1. If _cookie_'s name, byte-lowercased, starts with `__host-http-` and _cookie_ is not both Host-prefix compatible and Http-prefix compatible, then return null.
13091306

13101307
1. If _cookie_'s name is the empty byte sequence and one of the following is true:
13111308

@@ -1315,7 +1312,7 @@ boolean _httpOnlyAllowed_, boolean _allowNonHostOnlyCookieForPublicSuffix_, and
13151312

13161313
* _cookie_'s value, byte-lowercased, starts with `__http-`, or
13171314

1318-
* _cookie_'s value, byte-lowercased, starts with `__hosthttp-`,
1315+
* _cookie_'s value, byte-lowercased, starts with `__host-http-`,
13191316

13201317
then return null.
13211318

draft-ietf-httpbis-no-vary-search.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ And if the resource instead wants to take an allowlist-based approach, where onl
131131
No-Vary-Search: params, except=("productId")
132132
~~~~
133133

134-
{{header-definition}} defines the header, using the {{STRUCTURED-FIELDS}} framework. {{data-model}} and {{parsing}} illustrate the data model for how the header can be represented in specifications, and the process for parsing the raw output from the structured field parser into that data model. {{comparing}} gives the key algorithm for comparing if two URLs are equivalent under the influence of the header; notably, it leans on the decomposition of the query component into keys and values given by the [application/x-www-form-urlencoded](https://url.spec.whatwg.org/#concept-urlencoded) format specified in {{WHATWG-URL}}. Finally, {{caching}} explains how to modify {{HTTP-CACHING}} to take into account this new equivalence.
134+
{{header-definition}} defines the header, using the {{STRUCTURED-FIELDS}} framework. {{data-model}} and {{parsing}} illustrate the data model for how the header can be represented in specifications, and the process for parsing the raw output from the structured field parser into that data model. {{comparing}} gives the key algorithm for comparing if two URLs are equivalent under the influence of the header; notably, it leans on the decomposition of the query component into keys and values given by the [application/x-www-form-urlencoded](https://url.spec.whatwg.org/#concept-urlencoded) format specified in {{WHATWG-URL}}. (As such, this header is not useful for URLs whose query component does not follow that format.) Finally, {{caching}} explains how to modify {{HTTP-CACHING}} to take into account this new equivalence.
135135

136136
# Conventions and Definitions
137137

@@ -485,4 +485,12 @@ Comments
485485
# Acknowledgments
486486
{:numbered="false"}
487487

488-
TODO acknowledge.
488+
This document benefited from valuable reviews and suggestions by:
489+
490+
* Adam Rice
491+
* Julian Reschke
492+
* Kevin McNee
493+
* Liviu Tinta
494+
* Mark Nottingham
495+
* Martin Thomson
496+
* Valentin Gosu

0 commit comments

Comments
 (0)