HTTP / 2标头压缩

时间:2016-05-06 08:30:32

标签: header compression http2

我从单个客户端发送4-5个连续的HTTP / 2请求,并且HTTP头对于所有请求(以及有效负载)也是相同的。

原始标头大小约为343字节。 客户端 - Firefox, 服务器 - Jetty

然后我通过wireshark测量标题大小。我可以观察每个请求的标题大小,如下所示。

1st - 261 bytes
2nd -  55 bytes
3rd -  52 bytes
4th -  52 bytes

我假设首先减少标头大小是由于发送索引对应于静态标头,也是由于文字编码。在第一个请求之后,将填充动态表,并且第二个请求中的所有标头将是索引值。因此进一步减少了第二个请求。

但我无法弄清楚为什么第二次请求减少到第三次请求。我用几个原始大小的标题测试了这个,并且看到了相同的行为,从第二个请求到第三个请求减少了3个字节,然后大小变得一致。

感谢是否有人可以协助为此提供解释。

1 个答案:

答案 0 :(得分:0)

在分析HEADER帧后,发现它是动态头表大小更新信号。这里,在第一次请求之后,编码器决定选择比最大表大小更小的容量,并在第二次请求中向解码器发信号。