draft-ietf-httpbis-priority-07.txt | draft-ietf-httpbis-priority-08.txt | |||
---|---|---|---|---|
HTTP K. Oku | HTTP K. Oku | |||
Internet-Draft Fastly | Internet-Draft Fastly | |||
Intended status: Standards Track L. Pardue | Intended status: Standards Track L. Pardue | |||
Expires: 28 April 2022 Cloudflare | Expires: 12 May 2022 Cloudflare | |||
25 October 2021 | 8 November 2021 | |||
Extensible Prioritization Scheme for HTTP | Extensible Prioritization Scheme for HTTP | |||
draft-ietf-httpbis-priority-07 | draft-ietf-httpbis-priority-08 | |||
Abstract | Abstract | |||
This document describes a scheme that allows an HTTP client to | This document describes a scheme that allows an HTTP client to | |||
communicate its preferences for how the upstream server prioritizes | communicate its preferences for how the upstream server prioritizes | |||
responses to its requests, and also allows a server to hint to a | responses to its requests, and also allows a server to hint to a | |||
downstream intermediary how its responses should be prioritized when | downstream intermediary how its responses should be prioritized when | |||
they are forwarded. This document defines the Priority header field | they are forwarded. This document defines the Priority header field | |||
for communicating the initial priority in an HTTP version-independent | for communicating the initial priority in an HTTP version-independent | |||
manner, as well as HTTP/2 and HTTP/3 frames for reprioritizing | manner, as well as HTTP/2 and HTTP/3 frames for reprioritizing | |||
skipping to change at page 2, line 10 ¶ | skipping to change at page 2, line 10 ¶ | |||
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 28 April 2022. | This Internet-Draft will expire on 12 May 2022. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
skipping to change at page 2, line 34 ¶ | skipping to change at page 2, line 34 ¶ | |||
provided without warranty as described in the Simplified BSD License. | provided without warranty as described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Notational Conventions . . . . . . . . . . . . . . . . . 4 | 1.1. Notational Conventions . . . . . . . . . . . . . . . . . 4 | |||
2. Motivation for Replacing RFC 7540 Priorities . . . . . . . . 5 | 2. Motivation for Replacing RFC 7540 Priorities . . . . . . . . 5 | |||
2.1. Disabling RFC 7540 Priorities . . . . . . . . . . . . . . 6 | 2.1. Disabling RFC 7540 Priorities . . . . . . . . . . . . . . 6 | |||
2.1.1. Advice when Using Extensible Priorities as the | 2.1.1. Advice when Using Extensible Priorities as the | |||
Alternative . . . . . . . . . . . . . . . . . . . . . 7 | Alternative . . . . . . . . . . . . . . . . . . . . . 7 | |||
3. Applicability of the Extensible Priority Scheme . . . . . . . 7 | 3. Applicability of the Extensible Priority Scheme . . . . . . . 8 | |||
4. Priority Parameters . . . . . . . . . . . . . . . . . . . . . 8 | 4. Priority Parameters . . . . . . . . . . . . . . . . . . . . . 8 | |||
4.1. Urgency . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 4.1. Urgency . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
4.2. Incremental . . . . . . . . . . . . . . . . . . . . . . . 9 | 4.2. Incremental . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
4.3. Defining New Parameters . . . . . . . . . . . . . . . . . 10 | 4.3. Defining New Parameters . . . . . . . . . . . . . . . . . 10 | |||
4.3.1. Registration . . . . . . . . . . . . . . . . . . . . 10 | 4.3.1. Registration . . . . . . . . . . . . . . . . . . . . 11 | |||
5. The Priority HTTP Header Field . . . . . . . . . . . . . . . 11 | 5. The Priority HTTP Header Field . . . . . . . . . . . . . . . 12 | |||
6. Reprioritization . . . . . . . . . . . . . . . . . . . . . . 12 | 6. Reprioritization . . . . . . . . . . . . . . . . . . . . . . 12 | |||
7. The PRIORITY_UPDATE Frame . . . . . . . . . . . . . . . . . . 12 | 7. The PRIORITY_UPDATE Frame . . . . . . . . . . . . . . . . . . 12 | |||
7.1. HTTP/2 PRIORITY_UPDATE Frame . . . . . . . . . . . . . . 13 | 7.1. HTTP/2 PRIORITY_UPDATE Frame . . . . . . . . . . . . . . 13 | |||
7.2. HTTP/3 PRIORITY_UPDATE Frame . . . . . . . . . . . . . . 14 | 7.2. HTTP/3 PRIORITY_UPDATE Frame . . . . . . . . . . . . . . 15 | |||
8. Merging Client- and Server-Driven Parameters . . . . . . . . 15 | 8. Merging Client- and Server-Driven Parameters . . . . . . . . 16 | |||
9. Client Scheduling . . . . . . . . . . . . . . . . . . . . . . 16 | 9. Client Scheduling . . . . . . . . . . . . . . . . . . . . . . 17 | |||
10. Server Scheduling . . . . . . . . . . . . . . . . . . . . . . 17 | 10. Server Scheduling . . . . . . . . . . . . . . . . . . . . . . 17 | |||
10.1. Intermediaries with Multiple Backend Connections . . . . 18 | 10.1. Intermediaries with Multiple Backend Connections . . . . 19 | |||
11. Scheduling and the CONNECT Method . . . . . . . . . . . . . . 19 | 11. Scheduling and the CONNECT Method . . . . . . . . . . . . . . 19 | |||
12. Retransmission Scheduling . . . . . . . . . . . . . . . . . . 19 | 12. Retransmission Scheduling . . . . . . . . . . . . . . . . . . 20 | |||
13. Fairness . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 13. Fairness . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
13.1. Coalescing Intermediaries . . . . . . . . . . . . . . . 20 | 13.1. Coalescing Intermediaries . . . . . . . . . . . . . . . 20 | |||
13.2. HTTP/1.x Back Ends . . . . . . . . . . . . . . . . . . . 21 | 13.2. HTTP/1.x Back Ends . . . . . . . . . . . . . . . . . . . 21 | |||
13.3. Intentional Introduction of Unfairness . . . . . . . . . 21 | 13.3. Intentional Introduction of Unfairness . . . . . . . . . 21 | |||
14. Why use an End-to-End Header Field? . . . . . . . . . . . . . 21 | 14. Why use an End-to-End Header Field? . . . . . . . . . . . . . 22 | |||
15. Security Considerations . . . . . . . . . . . . . . . . . . . 22 | 15. Security Considerations . . . . . . . . . . . . . . . . . . . 22 | |||
16. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | 16. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 | |||
17. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 | 17. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
17.1. Normative References . . . . . . . . . . . . . . . . . . 23 | 17.1. Normative References . . . . . . . . . . . . . . . . . . 24 | |||
17.2. Informative References . . . . . . . . . . . . . . . . . 24 | 17.2. Informative References . . . . . . . . . . . . . . . . . 24 | |||
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 25 | Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 25 | |||
Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 25 | Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 26 | |||
B.1. Since draft-ietf-httpbis-priority-06 . . . . . . . . . . 25 | B.1. Since draft-ietf-httpbis-priority-06 . . . . . . . . . . 26 | |||
B.2. Since draft-ietf-httpbis-priority-05 . . . . . . . . . . 26 | B.2. Since draft-ietf-httpbis-priority-06 . . . . . . . . . . 26 | |||
B.3. Since draft-ietf-httpbis-priority-04 . . . . . . . . . . 26 | B.3. Since draft-ietf-httpbis-priority-05 . . . . . . . . . . 26 | |||
B.4. Since draft-ietf-httpbis-priority-03 . . . . . . . . . . 26 | B.4. Since draft-ietf-httpbis-priority-04 . . . . . . . . . . 26 | |||
B.5. Since draft-ietf-httpbis-priority-02 . . . . . . . . . . 26 | B.5. Since draft-ietf-httpbis-priority-03 . . . . . . . . . . 27 | |||
B.6. Since draft-ietf-httpbis-priority-01 . . . . . . . . . . 26 | B.6. Since draft-ietf-httpbis-priority-02 . . . . . . . . . . 27 | |||
B.7. Since draft-ietf-httpbis-priority-00 . . . . . . . . . . 27 | B.7. Since draft-ietf-httpbis-priority-01 . . . . . . . . . . 27 | |||
B.8. Since draft-kazuho-httpbis-priority-04 . . . . . . . . . 27 | B.8. Since draft-ietf-httpbis-priority-00 . . . . . . . . . . 27 | |||
B.9. Since draft-kazuho-httpbis-priority-03 . . . . . . . . . 27 | B.9. Since draft-kazuho-httpbis-priority-04 . . . . . . . . . 27 | |||
B.10. Since draft-kazuho-httpbis-priority-02 . . . . . . . . . 27 | B.10. Since draft-kazuho-httpbis-priority-03 . . . . . . . . . 28 | |||
B.11. Since draft-kazuho-httpbis-priority-01 . . . . . . . . . 27 | B.11. Since draft-kazuho-httpbis-priority-02 . . . . . . . . . 28 | |||
B.12. Since draft-kazuho-httpbis-priority-00 . . . . . . . . . 28 | B.12. Since draft-kazuho-httpbis-priority-01 . . . . . . . . . 28 | |||
B.13. Since draft-kazuho-httpbis-priority-00 . . . . . . . . . 28 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
1. Introduction | 1. Introduction | |||
It is common for representations of an HTTP [HTTP] resource to have | It is common for representations of an HTTP [HTTP] resource to have | |||
relationships to one or more other resources. Clients will often | relationships to one or more other resources. Clients will often | |||
discover these relationships while processing a retrieved | discover these relationships while processing a retrieved | |||
representation, which may lead to further retrieval requests. | representation, which may lead to further retrieval requests. | |||
Meanwhile, the nature of the relationship determines whether the | Meanwhile, the nature of the relationship determines whether the | |||
client is blocked from continuing to process locally available | client is blocked from continuing to process locally available | |||
skipping to change at page 7, line 6 ¶ | skipping to change at page 7, line 6 ¶ | |||
least equivalent performance characteristics compared to the more | least equivalent performance characteristics compared to the more | |||
complex RFC 7540 setups seen in practice, at least for the web use | complex RFC 7540 setups seen in practice, at least for the web use | |||
case. | case. | |||
2.1. Disabling RFC 7540 Priorities | 2.1. Disabling RFC 7540 Priorities | |||
The problems and insights set out above provided the motivation for | The problems and insights set out above provided the motivation for | |||
deprecating RFC 7540 stream priority (see Section 5.3 of [RFC7540]). | deprecating RFC 7540 stream priority (see Section 5.3 of [RFC7540]). | |||
The SETTINGS_NO_RFC7540_PRIORITIES HTTP/2 setting is defined by this | The SETTINGS_NO_RFC7540_PRIORITIES HTTP/2 setting is defined by this | |||
document in order to allow endpoints to explicitly opt out of using | document in order to allow endpoints to omit or ignore HTTP/2 | |||
HTTP/2 priority signals (see Section 5.3.2 of [HTTP2]). Endpoints | priority signals (see Section 5.3.2 of [HTTP2]), as described below. | |||
are encouraged to use alternative priority signals (for example, | ||||
Section 5 or Section 7.1) but there is no requirement to use a | ||||
specific signal type. | ||||
The value of SETTINGS_NO_RFC7540_PRIORITIES MUST be 0 or 1. Any | The value of SETTINGS_NO_RFC7540_PRIORITIES MUST be 0 or 1. Any | |||
value other than 0 or 1 MUST be treated as a connection error (see | value other than 0 or 1 MUST be treated as a connection error (see | |||
Section 5.4.1 of [HTTP2]) of type PROTOCOL_ERROR. The initial value | Section 5.4.1 of [HTTP2]) of type PROTOCOL_ERROR. The initial value | |||
is 0. | is 0. | |||
Endpoints MUST send this SETTINGS parameter as part of the first | If endpoints use SETTINGS_NO_RFC7540_PRIORITIES they MUST send it in | |||
SETTINGS frame. A sender MUST NOT change the | the first SETTINGS frame. Senders MUST NOT change the | |||
SETTINGS_NO_RFC7540_PRIORITIES parameter value after the first | SETTINGS_NO_RFC7540_PRIORITIES value after the first SETTINGS frame. | |||
SETTINGS frame. Detection of a change by a receiver MUST be treated | Receivers that detect a change MAY treat it as a connection error of | |||
as a connection error of type PROTOCOL_ERROR. | type PROTOCOL_ERROR. | |||
The SETTINGS frame precedes any HTTP/2 priority signal sent from a | Clients can send SETTINGS_NO_RFC7540_PRIORITIES with a value of 1 to | |||
client, so a server can determine if it needs to allocate any | indicate that they are not using HTTP/2 priority signals. The | |||
resource to signal handling before they arrive. A server that | SETTINGS frame precedes any HTTP/2 priority signal sent from clients, | |||
receives SETTINGS_NO_RFC7540_PRIORITIES with value of 1 MUST ignore | so servers can determine whether they need to allocate any resources | |||
HTTP/2 priority signals. | to signal handling before signals arrive. A server that receives | |||
SETTINGS_NO_RFC7540_PRIORITIES with a value of 1 MUST ignore HTTP/2 | ||||
priority signals. | ||||
Servers can send SETTINGS_NO_RFC7540_PRIORITIES with a value of 1 to | ||||
indicate that they will ignore HTTP/2 priority signals sent by | ||||
clients. | ||||
Endpoints that send SETTINGS_NO_RFC7540_PRIORITIES are encouraged to | ||||
use alternative priority signals (for example, Section 5 or | ||||
Section 7.1) but there is no requirement to use a specific signal | ||||
type. | ||||
2.1.1. Advice when Using Extensible Priorities as the Alternative | 2.1.1. Advice when Using Extensible Priorities as the Alternative | |||
Until the client receives the SETTINGS frame from the server, the | Until the client receives the SETTINGS frame from the server, the | |||
client SHOULD send both the HTTP/2 priority signals and the signals | client SHOULD send both the HTTP/2 priority signals and the signals | |||
of this prioritization scheme (see Section 5 and Section 7.1). When | of this prioritization scheme (see Section 5 and Section 7.1). When | |||
the client receives the first SETTINGS frame that contains the | the client receives the first SETTINGS frame that contains the | |||
SETTINGS_NO_RFC7540_PRIORITIES parameter with value of 1, it SHOULD | SETTINGS_NO_RFC7540_PRIORITIES parameter with value of 1, it SHOULD | |||
stop sending the HTTP/2 priority signals. If the value was 0 or if | stop sending the HTTP/2 priority signals. If the value was 0 or if | |||
the settings parameter was absent, it SHOULD stop sending | the settings parameter was absent, it SHOULD stop sending | |||
skipping to change at page 8, line 15 ¶ | skipping to change at page 8, line 25 ¶ | |||
4. Priority Parameters | 4. Priority Parameters | |||
The priority information is a sequence of key-value pairs, providing | The priority information is a sequence of key-value pairs, providing | |||
room for future extensions. Each key-value pair represents a | room for future extensions. Each key-value pair represents a | |||
priority parameter. | priority parameter. | |||
The Priority HTTP header field (Section 5) is an end-to-end way to | The Priority HTTP header field (Section 5) is an end-to-end way to | |||
transmit this set of parameters when a request or a response is | transmit this set of parameters when a request or a response is | |||
issued. In order to reprioritize a request, HTTP-version-specific | issued. In order to reprioritize a request, HTTP-version-specific | |||
PRIORITY_UPDATE frames (Section 7.1 and Section 7.2) are used by | PRIORITY_UPDATE frames (Section 7.1 and Section 7.2) are used by | |||
clients to transmit the same information on a single hop. If | clients to transmit the same information on a single hop. | |||
intermediaries want to specify prioritization on a multiplexed HTTP | ||||
connection, they SHOULD use a PRIORITY_UPDATE frame and SHOULD NOT | ||||
change the Priority header field. | ||||
In both cases, the set of priority parameters is encoded as a | Intermediaries can consume and produce priority signals in a | |||
Structured Fields Dictionary (see Section 3.2 of | PRIORITY_UPDATE frame or Priority header field. Sending a | |||
[STRUCTURED-FIELDS]). | PRIORITY_UPDATE frame preserves the signal from the client, but | |||
provides a signal that overrides for the next hop; see Section 14. | ||||
Replacing or adding a Priority header field overrides any signal from | ||||
a client and can affect prioritization for all subsequent recipients. | ||||
For both the Priority header field and the PRIORITY_UPDATE frame, the | ||||
set of priority parameters is encoded as a Structured Fields | ||||
Dictionary (see Section 3.2 of [STRUCTURED-FIELDS]). | ||||
This document defines the urgency(u) and incremental(i) parameters. | This document defines the urgency(u) and incremental(i) parameters. | |||
When receiving an HTTP request that does not carry these priority | When receiving an HTTP request that does not carry these priority | |||
parameters, a server SHOULD act as if their default values were | parameters, a server SHOULD act as if their default values were | |||
specified. Note that handling of omitted parameters is different | specified. Note that handling of omitted parameters is different | |||
when processing an HTTP response; see Section 8. | when processing an HTTP response; see Section 8. | |||
Receivers parse the Dictionary as defined in Section 4.2 of | Receivers parse the Dictionary as defined in Section 4.2 of | |||
[STRUCTURED-FIELDS]. Where the Dictionary is successfully parsed, | [STRUCTURED-FIELDS]. Where the Dictionary is successfully parsed, | |||
this document places the additional requirement that unknown priority | this document places the additional requirement that unknown priority | |||
skipping to change at page 12, line 36 ¶ | skipping to change at page 13, line 14 ¶ | |||
PRIORITY_UPDATE frames are sent by clients on the control stream, | PRIORITY_UPDATE frames are sent by clients on the control stream, | |||
allowing them to be sent independent from the stream that carries the | allowing them to be sent independent from the stream that carries the | |||
response. This means they can be used to reprioritize a response or | response. This means they can be used to reprioritize a response or | |||
a push stream; or signal the initial priority of a response instead | a push stream; or signal the initial priority of a response instead | |||
of the Priority header field. | of the Priority header field. | |||
A PRIORITY_UPDATE frame communicates a complete set of all parameters | A PRIORITY_UPDATE frame communicates a complete set of all parameters | |||
in the Priority Field Value field. Omitting a parameter is a signal | in the Priority Field Value field. Omitting a parameter is a signal | |||
to use the parameter's default value. Failure to parse the Priority | to use the parameter's default value. Failure to parse the Priority | |||
Field Value MUST be treated as a connection error. In HTTP/2 the | Field Value MAY be treated as a connection error. In HTTP/2 the | |||
error is of type PROTOCOL_ERROR; in HTTP/3 the error is of type | error is of type PROTOCOL_ERROR; in HTTP/3 the error is of type | |||
H3_FRAME_ERROR. | H3_GENERAL_PROTOCOL_ERROR. | |||
A client MAY send a PRIORITY_UPDATE frame before the stream that it | A client MAY send a PRIORITY_UPDATE frame before the stream that it | |||
references is open (except for HTTP/2 push streams; see Section 7.1). | references is open (except for HTTP/2 push streams; see Section 7.1). | |||
Furthermore, HTTP/3 offers no guaranteed ordering across streams, | Furthermore, HTTP/3 offers no guaranteed ordering across streams, | |||
which could cause the frame to be received earlier than intended. | which could cause the frame to be received earlier than intended. | |||
Either case leads to a race condition where a server receives a | Either case leads to a race condition where a server receives a | |||
PRIORITY_UPDATE frame that references a request stream that is yet to | PRIORITY_UPDATE frame that references a request stream that is yet to | |||
be opened. To solve this condition, for the purposes of scheduling, | be opened. To solve this condition, for the purposes of scheduling, | |||
the most recently received PRIORITY_UPDATE frame can be considered as | the most recently received PRIORITY_UPDATE frame can be considered as | |||
the most up-to-date information that overrides any other signal. | the most up-to-date information that overrides any other signal. | |||
skipping to change at page 25, line 45 ¶ | skipping to change at page 26, line 22 ¶ | |||
Alan Frindell, Andrew Galloni, Craig Taylor, Ian Swett, Kazuho Oku, | Alan Frindell, Andrew Galloni, Craig Taylor, Ian Swett, Kazuho Oku, | |||
Lucas Pardue, Matthew Cox, Mike Bishop, Roberto Peon, Robin Marx, Roy | Lucas Pardue, Matthew Cox, Mike Bishop, Roberto Peon, Robin Marx, Roy | |||
Fielding. | Fielding. | |||
Yang Chi contributed the section on retransmission scheduling. | Yang Chi contributed the section on retransmission scheduling. | |||
Appendix B. Change Log | Appendix B. Change Log | |||
B.1. Since draft-ietf-httpbis-priority-06 | B.1. Since draft-ietf-httpbis-priority-06 | |||
* Relax requirements of receiving SETTINGS_NO_RFC7540_PRIORITIES | ||||
that changes value (#1714, #1725) | ||||
* Clarify how intermediaries might use frames vs. headers (#1715, | ||||
#1735) | ||||
* Relax requirement when receiving a PRIORITY_UPDATE with an invalid | ||||
structured field value (#1741, #1756) | ||||
B.2. Since draft-ietf-httpbis-priority-06 | ||||
* Focus on editorial changes | * Focus on editorial changes | |||
* Clarify rules about Sf-Dictionary handling in headers | * Clarify rules about Sf-Dictionary handling in headers | |||
* Split policy for parameter IANA registry into two sections based | * Split policy for parameter IANA registry into two sections based | |||
on key length | on key length | |||
B.2. Since draft-ietf-httpbis-priority-05 | B.3. Since draft-ietf-httpbis-priority-05 | |||
* Renamed SETTINGS_DEPRECATE_RFC7540_PRIORITIES to | * Renamed SETTINGS_DEPRECATE_RFC7540_PRIORITIES to | |||
SETTINGS_NO_RFC7540_PRIORITIES | SETTINGS_NO_RFC7540_PRIORITIES | |||
* Clarify that senders of the HTTP/2 setting can use any alternative | * Clarify that senders of the HTTP/2 setting can use any alternative | |||
(#1679, #1705) | (#1679, #1705) | |||
B.3. Since draft-ietf-httpbis-priority-04 | B.4. Since draft-ietf-httpbis-priority-04 | |||
* Renamed SETTINGS_DEPRECATE_HTTP2_PRIORITIES to | * Renamed SETTINGS_DEPRECATE_HTTP2_PRIORITIES to | |||
SETTINGS_DEPRECATE_RFC7540_PRIORITIES (#1601) | SETTINGS_DEPRECATE_RFC7540_PRIORITIES (#1601) | |||
* Reoriented text towards RFC7540bis (#1561, #1601) | * Reoriented text towards RFC7540bis (#1561, #1601) | |||
* Clarify intermediary behavior (#1562) | * Clarify intermediary behavior (#1562) | |||
B.4. Since draft-ietf-httpbis-priority-03 | B.5. Since draft-ietf-httpbis-priority-03 | |||
* Add statement about what this scheme applies to. Clarify | * Add statement about what this scheme applies to. Clarify | |||
extensions can use it but must define how themselves (#1550, | extensions can use it but must define how themselves (#1550, | |||
#1559) | #1559) | |||
* Describe scheduling considerations for the CONNECT method (#1495, | * Describe scheduling considerations for the CONNECT method (#1495, | |||
#1544) | #1544) | |||
* Describe scheduling considerations for retransmitted data (#1429, | * Describe scheduling considerations for retransmitted data (#1429, | |||
#1504) | #1504) | |||
* Suggest intermediaries might avoid strict prioritization (#1562) | * Suggest intermediaries might avoid strict prioritization (#1562) | |||
B.5. Since draft-ietf-httpbis-priority-02 | B.6. Since draft-ietf-httpbis-priority-02 | |||
* Describe considerations for server push prioritization (#1056, | * Describe considerations for server push prioritization (#1056, | |||
#1345) | #1345) | |||
* Define HTTP/2 PRIORITY_UPDATE ID limits in HTTP/2 terms (#1261, | * Define HTTP/2 PRIORITY_UPDATE ID limits in HTTP/2 terms (#1261, | |||
#1344) | #1344) | |||
* Add a Parameters registry (#1371) | * Add a Parameters registry (#1371) | |||
B.6. Since draft-ietf-httpbis-priority-01 | B.7. Since draft-ietf-httpbis-priority-01 | |||
* PRIORITY_UPDATE frame changes (#1096, #1079, #1167, #1262, #1267, | * PRIORITY_UPDATE frame changes (#1096, #1079, #1167, #1262, #1267, | |||
#1271) | #1271) | |||
* Add section to describe server scheduling considerations (#1215, | * Add section to describe server scheduling considerations (#1215, | |||
#1232, #1266) | #1232, #1266) | |||
* Remove specific instructions related to intermediary fairness | * Remove specific instructions related to intermediary fairness | |||
(#1022, #1264) | (#1022, #1264) | |||
B.7. Since draft-ietf-httpbis-priority-00 | B.8. Since draft-ietf-httpbis-priority-00 | |||
* Move text around (#1217, #1218) | * Move text around (#1217, #1218) | |||
* Editorial change to the default urgency. The value is 3, which | * Editorial change to the default urgency. The value is 3, which | |||
was always the intent of previous changes. | was always the intent of previous changes. | |||
B.8. Since draft-kazuho-httpbis-priority-04 | B.9. Since draft-kazuho-httpbis-priority-04 | |||
* Minimize semantics of Urgency levels (#1023, #1026) | * Minimize semantics of Urgency levels (#1023, #1026) | |||
* Reduce guidance about how intermediary implements merging priority | * Reduce guidance about how intermediary implements merging priority | |||
signals (#1026) | signals (#1026) | |||
* Remove mention of CDN-Loop (#1062) | * Remove mention of CDN-Loop (#1062) | |||
* Editorial changes | * Editorial changes | |||
* Make changes due to WG adoption | * Make changes due to WG adoption | |||
* Removed outdated Consideration (#118) | * Removed outdated Consideration (#118) | |||
B.9. Since draft-kazuho-httpbis-priority-03 | B.10. Since draft-kazuho-httpbis-priority-03 | |||
* Changed numbering from [-1,6] to [0,7] (#78) | * Changed numbering from [-1,6] to [0,7] (#78) | |||
* Replaced priority scheme negotiation with HTTP/2 priority | * Replaced priority scheme negotiation with HTTP/2 priority | |||
deprecation (#100) | deprecation (#100) | |||
* Shorten parameter names (#108) | * Shorten parameter names (#108) | |||
* Expand on considerations (#105, #107, #109, #110, #111, #113) | * Expand on considerations (#105, #107, #109, #110, #111, #113) | |||
B.10. Since draft-kazuho-httpbis-priority-02 | B.11. Since draft-kazuho-httpbis-priority-02 | |||
* Consolidation of the problem statement (#61, #73) | * Consolidation of the problem statement (#61, #73) | |||
* Define SETTINGS_PRIORITIES for negotiation (#58, #69) | * Define SETTINGS_PRIORITIES for negotiation (#58, #69) | |||
* Define PRIORITY_UPDATE frame for HTTP/2 and HTTP/3 (#51) | * Define PRIORITY_UPDATE frame for HTTP/2 and HTTP/3 (#51) | |||
* Explain fairness issue and mitigations (#56) | * Explain fairness issue and mitigations (#56) | |||
B.11. Since draft-kazuho-httpbis-priority-01 | B.12. Since draft-kazuho-httpbis-priority-01 | |||
* Explain how reprioritization might be supported. | * Explain how reprioritization might be supported. | |||
B.12. Since draft-kazuho-httpbis-priority-00 | B.13. Since draft-kazuho-httpbis-priority-00 | |||
* Expand urgency levels from 3 to 8. | * Expand urgency levels from 3 to 8. | |||
Authors' Addresses | Authors' Addresses | |||
Kazuho Oku | Kazuho Oku | |||
Fastly | Fastly | |||
Email: kazuhooku@gmail.com | Email: kazuhooku@gmail.com | |||
Lucas Pardue | Lucas Pardue | |||
Cloudflare | Cloudflare | |||
Email: lucaspardue.24.7@gmail.com | Email: lucaspardue.24.7@gmail.com | |||
End of changes. 33 change blocks. | ||||
67 lines changed or deleted | 89 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |