【发布时间】:2017-01-03 07:21:02
【问题描述】:
由于我不是专家,所以我有一个关于 HTTP/2 的一般性问题。
众所周知,HTTP2 压缩标头以减小消息大小。这仅适用于响应还是也适用于请求?如果做一个小实验并运行两台小型 HTTP 服务器,一台使用 1.1 版,另一台使用 2 版,让它们发送完全相同的内容,然后在 Firefox 中请求这两个页面,我可以看到响应头的大小要小得多HTTP/2 版本。但是,请求标头大小几乎相同。据我了解,这是有道理的,因为浏览器事先并不知道服务器是否支持 HTTP/2,因此无法预先压缩标头。我对吗?如果是这样,有没有办法“强制”客户端使用 HTTP/2(对于客户端,我不是指浏览器,而是程序化的)并压缩请求标头?
还有一个问题:如果我想在负载下对 HTTP/1.1 和 HTTP/2 性能进行基准测试,那么有用的测试设置应该是什么样的,哪些参数会变化,哪些指标可以测量(RTT, TTFB,...?)
【问题讨论】:
-
它适用于请求和响应标头。你是如何测量标题大小的?
-
客户端如何提前知道可以发送压缩头?这是通过ALPN 完成的吗?出于测试目的,我只是为此使用了 Firefox 开发工具(网络分析),它在单击请求时打印“请求标头(427 kb)”。实际上,我不知道该大小是否与实际通过网络传输的标头的大小或最终缩小的标头的大小有关。我正在寻找一种查看 HTTP 包大小(Node.js http)的好方法,有什么建议吗?