跳到主要内容

3. header block 解码

3.1. header block 处理​

解码器按顺序处理 header block, 以重构原始 header list.

header block 是 header field representation 的串接. Section 6 描述了各种可能的 header field representation.

一旦某个 header field 被解码并添加到重构后的 header list, 该 header field 就不能被移除. 添加到 header list 的 header field 可以安全地传递给应用.

通过将得到的 header field 传递给应用, 解码器除了 dynamic table 所需的内存之外, 可以只用最少的临时内存占用来实现.

3.2. header field representation 处理​

本节定义了如何处理 header block 以获得 header list. 为确保解码能够成功生成 header list, 解码器 MUST 遵守以下规则.

header block 中包含的所有 header field representation 都按其出现顺序处理, 如下所述. 各种 header field representation 的格式细节以及一些额外处理指令见 Section 6.

indexed representation 包含以下动作:

  • 将 static table 或 dynamic table 中被引用条目对应的 header field 追加到已解码的 header list.

not added 到 dynamic table 的 literal representation 包含以下动作:

  • 将 header field 追加到已解码的 header list.

added 到 dynamic table 的 literal representation 包含以下动作:

  • 将 header field 追加到已解码的 header list.

  • 将 header field 插入 dynamic table 的开头. 该插入可能导致 dynamic table 中已有条目被逐出 (见 Section 4.4).