メインコンテンツまでスキップ

3. ヘッダーブロックのデコード (Header Block Decoding)

3.1. ヘッダーブロックの処理 (Header Block Processing)

デコーダーは、元のヘッダーリストを再構築するために、ヘッダーブロックを順次処理します。

ヘッダーブロックは、ヘッダーフィールド表現の連結です。考えられる異なるヘッダーフィールド表現については、第6節で説明されています。

ヘッダーフィールドがデコードされ、再構築されたヘッダーリストに追加されると、そのヘッダーフィールドを削除することはできません。ヘッダーリストに追加されたヘッダーフィールドは、アプリケーションに安全に渡すことができます。

結果として得られるヘッダーフィールドをアプリケーションに渡すことにより、デコーダーは、動的テーブルに必要なメモリに加えて、最小限の一時的なメモリコミットメントで実装できます。

3.2. ヘッダーフィールド表現の処理 (Header Field Representation Processing)

ヘッダーリストを取得するためのヘッダーブロックの処理は、本節で定義されています。デコーディングがヘッダーリストを正常に生成することを保証するために、デコーダーは以下のルールに従わなければなりません (MUST)。

ヘッダーブロックに含まれるすべてのヘッダーフィールド表現は、以下に指定されているように、出現する順序で処理されます。さまざまなヘッダーフィールド表現のフォーマットに関する詳細といくつかの追加の処理手順は、第6節にあります。

インデックス付き表現は、以下のアクションを伴います:

  • 静的テーブルまたは動的テーブルのいずれかで参照されたエントリに対応するヘッダーフィールドが、デコードされたヘッダーリストに追加されます。

動的テーブルに追加されないリテラル表現は、以下のアクションを伴います:

  • ヘッダーフィールドがデコードされたヘッダーリストに追加されます。

動的テーブルに追加されるリテラル表現は、以下のアクションを伴います:

  • ヘッダーフィールドがデコードされたヘッダーリストに追加されます。

  • ヘッダーフィールドが動的テーブルの先頭に挿入されます。この挿入により、動的テーブル内の以前のエントリが削除される可能性があります (第4.4節参照)。