7. The PRIORITY_UPDATE Frame
The PRIORITY_UPDATE frame is used to reprioritize a response after a request has been sent. This frame type is specific to the HTTP version and is defined for HTTP/2 and HTTP/3 in Sections 7.1 and 7.2, respectively.
The PRIORITY_UPDATE frame carries priority parameters in the same format as the Priority HTTP header field (Section 5). These parameters override any parameters previously sent for the request, whether sent via the Priority header field or via another PRIORITY_UPDATE frame.
Intermediaries MUST NOT forward PRIORITY_UPDATE frames to the next hop. Intermediaries MAY use information in a received PRIORITY_UPDATE frame to change the priority of a forwarded request or response, or they MAY choose to ignore the frame.
Servers MAY send PRIORITY_UPDATE frames to suggest how intermediaries ought to prioritize their responses. Servers SHOULD send PRIORITY_UPDATE frames to intermediaries that are known to understand them.
7.1. HTTP/2 PRIORITY_UPDATE Frame
The HTTP/2 PRIORITY_UPDATE frame (type=0x10) conveys priority parameters on an HTTP/2 connection. The format and semantics of the frame are defined in [HTTP/2].
The PRIORITY_UPDATE frame identifies the request stream to be reprioritized and carries the priority parameters to be applied, encoded as a Dictionary.
The payload of an HTTP/2 PRIORITY_UPDATE frame contains the following fields:
-
Prioritized Stream ID: A 31-bit stream identifier for the request stream to be reprioritized (see Section 5.1.1 of [HTTP/2]).
-
Priority Field Value: A Dictionary containing priority parameters, encoded as a sequence of ASCII characters.
Clients MAY send a PRIORITY_UPDATE frame for a stream in any state, though it ought to be sent before the stream transitions to the "closed" state (see Section 5.1 of [HTTP/2]).
Servers MAY send a PRIORITY_UPDATE frame in any state.
7.2. HTTP/3 PRIORITY_UPDATE Frame
The HTTP/3 PRIORITY_UPDATE frame (type=0xF0700 or 0xF0701) conveys priority parameters on an HTTP/3 connection.
Frame type 0xF0700 is used for request streams, and 0xF0701 is used for push streams.
The payload of an HTTP/3 PRIORITY_UPDATE frame contains:
-
Prioritized Element ID: The stream ID or push ID encoded using variable-length integer encoding.
-
Priority Field Value: A Dictionary containing priority parameters.
Clients MAY send a PRIORITY_UPDATE frame for a request stream at any time.
Servers MAY send a PRIORITY_UPDATE frame at any time to indicate how their response ought to be prioritized.