7. The PRIORITY_UPDATE Frame (La trame PRIORITY_UPDATE)
La trame PRIORITY_UPDATE est utilisée pour reprioriser une réponse après l'envoi d'une requête. Ce type de trame est spécifique à la version HTTP et est défini pour HTTP/2 et HTTP/3 dans les Sections 7.1 et 7.2, respectivement.
La trame PRIORITY_UPDATE transporte des paramètres de priorité dans le même format que le champ d'en-tête HTTP Priority (Section 5). Ces paramètres remplacent tous les paramètres précédemment envoyés pour la requête, qu'ils aient été envoyés via le champ d'en-tête Priority ou via une autre trame PRIORITY_UPDATE.
Les intermédiaires ne doivent pas (MUST NOT) transmettre les trames PRIORITY_UPDATE au prochain saut. Les intermédiaires peuvent (MAY) utiliser les informations d'une trame PRIORITY_UPDATE reçue pour modifier la priorité d'une requête ou d'une réponse transmise, ou ils peuvent (MAY) choisir d'ignorer la trame.
Les serveurs peuvent (MAY) envoyer des trames PRIORITY_UPDATE pour suggérer comment les intermédiaires devraient prioriser leurs réponses. Les serveurs devraient (SHOULD) envoyer des trames PRIORITY_UPDATE aux intermédiaires dont on sait qu'ils les comprennent.
7.1. HTTP/2 PRIORITY_UPDATE Frame (Trame PRIORITY_UPDATE HTTP/2)
La trame HTTP/2 PRIORITY_UPDATE (type=0x10) transmet des paramètres de priorité sur une connexion HTTP/2. Le format et la sémantique de la trame sont définis dans [HTTP/2].
La trame PRIORITY_UPDATE identifie le flux de requête à reprioriser et transporte les paramètres de priorité à appliquer, encodés comme un Dictionary.
La charge utile d'une trame HTTP/2 PRIORITY_UPDATE contient les champs suivants :
-
Prioritized Stream ID (ID de flux priorisé) : Un identifiant de flux de 31 bits pour le flux de requête à reprioriser (voir Section 5.1.1 de [HTTP/2]).
-
Priority Field Value (Valeur du champ de priorité) : Un Dictionary contenant des paramètres de priorité, encodé comme une séquence de caractères ASCII.
Les clients peuvent (MAY) envoyer une trame PRIORITY_UPDATE pour un flux dans n'importe quel état, bien qu'elle devrait être envoyée avant que le flux ne passe à l'état "closed" (voir Section 5.1 de [HTTP/2]).
Les serveurs peuvent (MAY) envoyer une trame PRIORITY_UPDATE dans n'importe quel état.
7.2. HTTP/3 PRIORITY_UPDATE Frame (Trame PRIORITY_UPDATE HTTP/3)
La trame HTTP/3 PRIORITY_UPDATE (type=0xF0700 ou 0xF0701) transmet des paramètres de priorité sur une connexion HTTP/3.
Le type de trame 0xF0700 est utilisé pour les flux de requête, et 0xF0701 est utilisé pour les flux push.
La charge utile d'une trame HTTP/3 PRIORITY_UPDATE contient :
-
Prioritized Element ID (ID d'élément priorisé) : L'ID de flux ou l'ID push encodé en utilisant l'encodage d'entier de longueur variable.
-
Priority Field Value (Valeur du champ de priorité) : Un Dictionary contenant des paramètres de priorité.
Les clients peuvent (MAY) envoyer une trame PRIORITY_UPDATE pour un flux de requête à tout moment.
Les serveurs peuvent (MAY) envoyer une trame PRIORITY_UPDATE à tout moment pour indiquer comment leur réponse devrait être priorisée.