3. ヘッダーブロックのデコード (Header Block Decoding)
3.1. ヘッダーブロックの処理 (Header Block Processing)
デコーダーは、元のヘッダーリストを再構築するために、ヘッダーブロックを順次処理します。
ヘッダーブロックは、ヘッダーフィールド表現の連結です。考えられる異なるヘッダーフィールド表現については、第6節で説明されています。
ヘッダーフィールドがデコードされ、再構築されたヘッダーリストに追加されると、そのヘッダーフィールドを削除することはできません。ヘッダーリストに追加されたヘッダーフィールドは、アプリケーションに安全に渡すことができます。
結果として得られるヘッダーフィールドをアプリケーションに渡すことにより、デコーダーは、動的テーブルに必要なメモリに加えて、最小限の一時的なメモリコミットメントで実装できます。
3.2. ヘッダーフィールド表現の処理 (Header Field Representation Processing)
ヘッダーリストを取得するためのヘッダーブロックの処理は、本節で定義されています。デコーディングがヘッダーリストを正常に生成することを保証するために、デコーダーは以下のルールに従わなければなりません (MUST)。
ヘッダーブロックに含まれるすべてのヘッダーフィールド表現は、以下に指定されているように、出現する順序で処理されます。さまざまなヘッダーフィールド表現のフォーマットに関する詳細といくつかの追加の処理手順は、第6節にあります。
インデックス付き表現は、以下のアクションを伴います:
- 静的テーブルまたは動的テーブルのいずれかで参照されたエントリに対応するヘッダーフィールドが、デコードされたヘッダーリストに追加されます。
動的テーブルに追加されないリテラル表現は、以下のアクションを伴います:
- ヘッダーフィールドがデコードされたヘッダーリストに追加されます。
動的テーブルに追加されるリテラル表現は、以下のアクションを伴います:
-
ヘッダーフィールドがデコードされたヘッダーリストに追加されます。
-
ヘッダーフィールドが動的テーブルの先頭に挿入されます。この挿入により、動的テーブル内の以前のエントリが削除される可能性があります (第4.4節参照)。