7. The PRIORITY_UPDATE Frame (Der PRIORITY_UPDATE-Frame)
Der PRIORITY_UPDATE-Frame wird verwendet, um eine Antwort neu zu priorisieren, nachdem eine Anfrage gesendet wurde. Dieser Frame-Typ ist HTTP-versionsspezifisch und wird für HTTP/2 und HTTP/3 in den Abschnitten 7.1 bzw. 7.2 definiert.
Der PRIORITY_UPDATE-Frame trägt Prioritätsparameter im gleichen Format wie das Priority HTTP Header-Feld (Abschnitt 5). Diese Parameter überschreiben alle zuvor für die Anfrage gesendeten Parameter, unabhängig davon, ob sie über das Priority-Header-Feld oder über einen anderen PRIORITY_UPDATE-Frame gesendet wurden.
Vermittler dürfen (MUST NOT) PRIORITY_UPDATE-Frames nicht an den nächsten Hop weiterleiten. Vermittler können (MAY) Informationen in einem empfangenen PRIORITY_UPDATE-Frame verwenden, um die Priorität einer weitergeleiteten Anfrage oder Antwort zu ändern, oder sie können (MAY) den Frame ignorieren.
Server können (MAY) PRIORITY_UPDATE-Frames senden, um vorzuschlagen, wie Vermittler ihre Antworten priorisieren sollten. Server sollten (SHOULD) PRIORITY_UPDATE-Frames an Vermittler senden, von denen bekannt ist, dass sie diese verstehen.
7.1. HTTP/2 PRIORITY_UPDATE Frame (HTTP/2 PRIORITY_UPDATE-Frame)
Der HTTP/2 PRIORITY_UPDATE-Frame (type=0x10) übermittelt Prioritätsparameter über eine HTTP/2-Verbindung. Format und Semantik des Frames sind in [HTTP/2] definiert.
Der PRIORITY_UPDATE-Frame identifiziert den neu zu priorisierenden Anforderungsstream und trägt die anzuwendenden Prioritätsparameter, kodiert als Dictionary.
Die Nutzlast eines HTTP/2 PRIORITY_UPDATE-Frames enthält die folgenden Felder:
-
Prioritized Stream ID (Priorisierte Stream-ID): Eine 31-Bit-Stream-Kennung für den neu zu priorisierenden Anforderungsstream (siehe Abschnitt 5.1.1 von [HTTP/2]).
-
Priority Field Value (Prioritätsfeld-Wert): Ein Dictionary, das Prioritätsparameter enthält, kodiert als Sequenz von ASCII-Zeichen.
Clients können (MAY) einen PRIORITY_UPDATE-Frame für einen Stream in jedem Zustand senden, obwohl er gesendet werden sollte, bevor der Stream in den Zustand "closed" übergeht (siehe Abschnitt 5.1 von [HTTP/2]).
Server können (MAY) einen PRIORITY_UPDATE-Frame in jedem Zustand senden.
7.2. HTTP/3 PRIORITY_UPDATE Frame (HTTP/3 PRIORITY_UPDATE-Frame)
Der HTTP/3 PRIORITY_UPDATE-Frame (type=0xF0700 oder 0xF0701) übermittelt Prioritätsparameter über eine HTTP/3-Verbindung.
Frame-Typ 0xF0700 wird für Anforderungsstreams verwendet, und 0xF0701 wird für Push-Streams verwendet.
Die Nutzlast eines HTTP/3 PRIORITY_UPDATE-Frames enthält:
-
Prioritized Element ID (Priorisierte Element-ID): Die Stream-ID oder Push-ID, kodiert unter Verwendung der Kodierung variabler Länge für ganze Zahlen.
-
Priority Field Value (Prioritätsfeld-Wert): Ein Dictionary, das Prioritätsparameter enthält.
Clients können (MAY) jederzeit einen PRIORITY_UPDATE-Frame für einen Anforderungsstream senden.
Server können (MAY) jederzeit einen PRIORITY_UPDATE-Frame senden, um anzuzeigen, wie ihre Antwort priorisiert werden sollte.