【发布时间】:2019-04-05 13:52:32
【问题描述】:
我正在制作识别 websocket 连接的项目。由于在 HTTP2 中更改了 websocket 连接方式,因此添加了一个新的伪标头 ":protocol",如 RFC8441 中所述。但我在HPACK's static table 中找不到这个新伪标头的索引号。
我试过谷歌搜索,但没有相关信息。
【问题讨论】:
我正在制作识别 websocket 连接的项目。由于在 HTTP2 中更改了 websocket 连接方式,因此添加了一个新的伪标头 ":protocol",如 RFC8441 中所述。但我在HPACK's static table 中找不到这个新伪标头的索引号。
我试过谷歌搜索,但没有相关信息。
【问题讨论】:
您无法向状态表添加条目。您的 HPACK 链接中的第一行(重点是我的):
静态表(参见第 2.3.1 节)包含一个预定义的且不可更改的标题字段列表。
HPACK 格式故意简单且不灵活。这两个特性都降低了由于实施错误导致的互操作性或安全问题的风险。没有定义可扩展性机制;只能通过定义完全替换来更改格式。
因此,标头被添加到动态 HPACK 表中,但没有固定的索引号。
即使它在静态表中分配了一个索引号,假设始终使用它也是错误的 - different clients use the static and dynamic table differently。
【讨论】: