关于HTTP/2连接序言后能否紧跟SETTINGS_ACK帧的技术问询
HTTP/2连接序言后SETTINGS帧的疑问解答
来自HTTP/2协议的3.5节:HTTP/2连接序言
即,连接序言以字符串"PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"开头)。该序列之后必须紧跟一个SETTINGS帧(第6.5节),该帧可以为空。
针对你的疑问,明确结论如下:
- 客户端在连接序言后发送的必须是自身的配置SETTINGS帧,而非对服务器SETTINGS帧的确认(SETTINGS_ACK)。SETTINGS_ACK帧的作用是确认对方发送的SETTINGS配置,而连接建立初期服务器还未向客户端发送任何SETTINGS帧,客户端没有可确认的对象,因此此时无法发送SETTINGS_ACK。
- 连接序言后不能紧跟SETTINGS_ACK帧。RFC明确要求序言之后必须紧跟承载自身配置的SETTINGS帧,SETTINGS_ACK帧的发送前提是收到了对方的SETTINGS帧,这在连接刚完成序言阶段的场景下不成立。
内容的提问来源于stack exchange,提问作者子不语
相关产品推荐
相关产品推荐

