与HTTP2设置和连接前言有什么不同

时间:2015-10-13 05:54:52

标签: http2 http2-lawyers

来自HTTP/2 protocol

  

HTTP2-Settings标头字段的内容是SETTINGS框架的有效负载(第6.5节)

  

收到101响应后,客户端必须发送连接前言(第3.5节),其中包括SETTINGS帧

我的问题是为什么客户端将SETTINGS帧两次发送到服务器?感谢。

1 个答案:

答案 0 :(得分:0)

HTTP / 2非常重视在设置之前交换SETTINGS,因此我的印象是HTTP2-Settings用于在服务器甚至接受切换到HTTP之前通知服务器客户端的条件/ 2。

第二个SETTINGS框架可能是为了统一,因此一旦从HTTP / 1.1升级完成,就会有一个以SETTINGS开头的统一HTTP / 2会话,与TLS + ALPN或通过普通HTTP / 2相同以前的知识。规范并没有说明哪些设置应该放在任何一个框架AFAICT中,因此其中一个可以为空(实际上是规范,3.5节)。

这种冗余是一个很小的支付成本:每个连接9个字节,相比之下,当从HTTP / 1.1升级的情况下,与HTTP / 2的情况稍有不同的HTTP / 2实现的复杂性相比那没有。

请注意,虽然某些工具实际上会使用HTTP / 2而不是普通连接,但真正有趣的情况,即浏览器,将始终使用TLS + ALPN。