3. Decodifica del blocco di intestazioni (Header Block Decoding)
3.1. Elaborazione del blocco di intestazioni (Header Block Processing)
Un decoder elabora un blocco di intestazioni in modo sequenziale per ricostruire la lista di intestazioni originale.
Un blocco di intestazioni è la concatenazione di rappresentazioni di campi di intestazione. Le diverse possibili rappresentazioni di campi di intestazione sono descritte nella Sezione 6.
Una volta che un campo di intestazione è decodificato e aggiunto alla lista di intestazioni ricostruita, il campo di intestazione non può essere rimosso. Un campo di intestazione aggiunto alla lista di intestazioni può essere passato in modo sicuro all'applicazione.
Passando i campi di intestazione risultanti all'applicazione, un decoder può essere implementato con un impegno di memoria transitoria minimo oltre alla memoria richiesta per la tabella dinamica.
3.2. Elaborazione della rappresentazione del campo di intestazione
L'elaborazione di un blocco di intestazioni per ottenere una lista di intestazioni è definita in questa sezione. Per garantire che la decodifica produca con successo una lista di intestazioni, un decoder DEVE rispettare le seguenti regole.
Tutte le rappresentazioni dei campi di intestazione contenute in un blocco di intestazioni sono elaborate nell'ordine in cui appaiono, come specificato di seguito.
Una rappresentazione indicizzata comporta le seguenti azioni:
- Il campo di intestazione corrispondente alla voce referenziata nella tabella statica o nella tabella dinamica viene aggiunto alla lista di intestazioni decodificata.
Una rappresentazione letterale che non viene aggiunta alla tabella dinamica comporta la seguente azione:
- Il campo di intestazione viene aggiunto alla lista di intestazioni decodificata.
Una rappresentazione letterale che viene aggiunta alla tabella dinamica comporta le seguenti azioni:
-
Il campo di intestazione viene aggiunto alla lista di intestazioni decodificata.
-
Il campo di intestazione viene inserito all'inizio della tabella dinamica. Questo inserimento potrebbe comportare l'eliminazione di voci precedenti nella tabella dinamica (vedi Sezione 4.4).