跳到主要内容

1. 引言 (Introduction)

本文档定义了一种简单格式, 用于表示 HTTP 消息 [HTTP], 该消息可以是请求也可以是响应. 这允许对可在 HTTP 协议之外传递的 HTTP 消息进行编码, 从而支持对完整消息进行转换, 包括应用认证加密.

该格式的设计借鉴了 HTTP/2 [HTTP/2] 和 HTTP/3 [HTTP/3] 的成帧结构. 构造消息的规则依赖 HTTP/2 中定义的规则, 但该格式本身是独立的; 见 第 6 节.

该格式定义了 "message/bhttp", 作为 [HTTP/1.1] 中定义的 "message/http" 内容类型的二进制替代形式. 二进制格式允许更高效地编码和处理消息. 二进制格式还减少了与 HTTP 消息处理相关的安全问题暴露面.

本文描述两种编码模式:

  • 已知长度编码 (known-length encoding) 为所有主要消息组件包含长度前缀, 以及
  • 不定长度编码 (indeterminate-length encoding) 允许在编码开始时长度未知的情况下高效生成消息.

该格式旨在尽可能简单且高效地传达有效 HTTP 消息的语义. 它并非设计用于捕获特定 HTTP 版本 [HTTP/1.1] [HTTP/2] [HTTP/3] 消息编码的所有细节. 因此, 对依赖精确记录消息编码的应用来说, 该格式不太可能适用.