7. The PRIORITY_UPDATE Frame (Il frame PRIORITY_UPDATE)
Il frame PRIORITY_UPDATE viene utilizzato per ripriorizzare una risposta dopo che una richiesta è stata inviata. Questo tipo di frame è specifico della versione HTTP ed è definito per HTTP/2 e HTTP/3 nelle Sezioni 7.1 e 7.2, rispettivamente.
Il frame PRIORITY_UPDATE trasporta parametri di priorità nello stesso formato del campo di intestazione HTTP Priority (Sezione 5). Questi parametri sovrascrivono qualsiasi parametro precedentemente inviato per la richiesta, sia che siano stati inviati tramite il campo di intestazione Priority o tramite un altro frame PRIORITY_UPDATE.
Gli intermediari non devono (MUST NOT) inoltrare i frame PRIORITY_UPDATE al prossimo hop. Gli intermediari possono (MAY) utilizzare le informazioni in un frame PRIORITY_UPDATE ricevuto per modificare la priorità di una richiesta o risposta inoltrata, oppure possono (MAY) scegliere di ignorare il frame.
I server possono (MAY) inviare frame PRIORITY_UPDATE per suggerire come gli intermediari dovrebbero prioritizzare le loro risposte. I server dovrebbero (SHOULD) inviare frame PRIORITY_UPDATE agli intermediari di cui si sa che li comprendono.
7.1. HTTP/2 PRIORITY_UPDATE Frame (Frame PRIORITY_UPDATE HTTP/2)
Il frame HTTP/2 PRIORITY_UPDATE (type=0x10) trasmette parametri di priorità su una connessione HTTP/2. Il formato e la semantica del frame sono definiti in [HTTP/2].
Il frame PRIORITY_UPDATE identifica il flusso di richiesta da ripriorizzare e trasporta i parametri di priorità da applicare, codificati come Dictionary.
Il payload di un frame HTTP/2 PRIORITY_UPDATE contiene i seguenti campi:
-
Prioritized Stream ID (ID flusso prioritizzato): Un identificatore di flusso a 31 bit per il flusso di richiesta da ripriorizzare (vedere Sezione 5.1.1 di [HTTP/2]).
-
Priority Field Value (Valore del campo di priorità): Un Dictionary contenente parametri di priorità, codificato come sequenza di caratteri ASCII.
I client possono (MAY) inviare un frame PRIORITY_UPDATE per un flusso in qualsiasi stato, sebbene dovrebbe essere inviato prima che il flusso passi allo stato "closed" (vedere Sezione 5.1 di [HTTP/2]).
I server possono (MAY) inviare un frame PRIORITY_UPDATE in qualsiasi stato.
7.2. HTTP/3 PRIORITY_UPDATE Frame (Frame PRIORITY_UPDATE HTTP/3)
Il frame HTTP/3 PRIORITY_UPDATE (type=0xF0700 o 0xF0701) trasmette parametri di priorità su una connessione HTTP/3.
Il tipo di frame 0xF0700 è utilizzato per i flussi di richiesta, e 0xF0701 è utilizzato per i flussi push.
Il payload di un frame HTTP/3 PRIORITY_UPDATE contiene:
-
Prioritized Element ID (ID elemento prioritizzato): L'ID del flusso o l'ID push codificato utilizzando la codifica a lunghezza variabile per interi.
-
Priority Field Value (Valore del campo di priorità): Un Dictionary contenente parametri di priorità.
I client possono (MAY) inviare un frame PRIORITY_UPDATE per un flusso di richiesta in qualsiasi momento.
I server possono (MAY) inviare un frame PRIORITY_UPDATE in qualsiasi momento per indicare come la loro risposta dovrebbe essere prioritizzata.