HTTP/2 协议中的 WINDOW_UPDATE 和 SETTINGS 帧有啥区别?

Posted

技术标签:

【中文标题】HTTP/2 协议中的 WINDOW_UPDATE 和 SETTINGS 帧有啥区别?【英文标题】:What is the difference between WINDOW_UPDATE and SETTINGS frames in HTTP/2 protocol?HTTP/2 协议中的 WINDOW_UPDATE 和 SETTINGS 帧有什么区别? 【发布时间】:2016-04-13 12:42:09 【问题描述】:

我已经阅读了一些 HTTP/2 rfc7540 规范,但我不完全理解 HTTP/2 协议中 WINDOW_UPDATE 和 SETTINGS 帧之间的区别是什么?

【问题讨论】:

【参考方案1】:

正如引用的RFC 7540 中所说,WINDOW_UPDATE 用于实现流控制,而 SETTINGS 传输端点必须应用的配置参数。

客户端与服务器建立 TCP 连接。然后它可以发送一个 SETTINGS 帧来通知服务器它希望服务器遵守的配置参数。 例如,客户端端点可以告诉服务器不支持 PUSH(请参阅https://www.rfc-editor.org/rfc/rfc7540#section-6.5.2)。

同样,服务器可以向客户端发送一个包含其配置参数的 SETTINGS 帧。

另一方面,流量控制是关于每个端点可以在连接上发送多少数据字节。 唯一受流控制的帧是 DATA 帧。

流控制是多路复用协议应该实现的必要机制。详情请参阅this section。

总之,WINDOW_UPDATE 和 SETTINGS 帧分别实现了 HTTP/2 协议的不同功能。

【讨论】:

以上是关于HTTP/2 协议中的 WINDOW_UPDATE 和 SETTINGS 帧有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

HTTP/2 协议-服务端主动推送消息

okHttp拦截器中的协议升级机制

NET问答: 如何让 HttpClient 支持 Http 2.0 协议?

HTTP/2协议之Stream【原理笔记】

HTTP 协议的前世今生HTTP 1.0HTTP 1.1 和 HTTP 2.0

HTTP 协议的前世今生HTTP 1.0HTTP 1.1 和 HTTP 2.0