多路复用在HTTP / 2中意味着什么

时间:2016-04-09 14:03:47

标签: http2

有人可以解释与HTTP / 2相关的多路复用及其工作原理吗?

4 个答案:

答案 0 :(得分:3)

简单答案(Source):

多路复用意味着您的浏览器可以发送多个请求并接收多个响应"捆绑"进入单个TCP连接。因此,为来自同一服务器的文件保存了与DNS查找和握手相关的工作负载。

复杂/详细的答案:

请注意@BazzaDP提供的答案。

答案 1 :(得分:3)

由于@Juanma Menendez的图表令人困惑,因此答案是正确的,因此我决定对其进行改进,以澄清多路复用和流水线之间的区别,即经常混淆的概念。

管道(HTTP / 1.1)

多个请求是通过同一 HTTP连接发送的。响应的接收顺序相同。如果第一个响应花费大量时间,则其他响应必须排队等候。与CPU流水线相似,在CPU流水线中,一条指令被解码而另一条指令被提取。同时执行多个指令,但它们的顺序得以保留。

多路复用(HTTP / 2)

多个请求是通过同一 HTTP连接发送的。响应以任意顺序接收。无需等待阻止其他人的缓慢响应。类似于现代CPU中的乱序指令执行。

希望改进后的图像可以澄清区别:

Standard HTTP/1.1 flow/Pipelining/Multiplexing

答案 2 :(得分:1)

HTTP 2.0中的复用是浏览器和服务器之间的关系类型,它们使用单​​个连接并行传递多个请求和响应,从而在此过程中创建许多单独的帧。

Multiplexing脱离了严格的请求-响应语义,并启用了一对多或多对多关系。

HTTP1 VS HTTP2 interchange process

答案 3 :(得分:1)

请求多路复用

HTTP / 2可以通过单个TCP连接并行发送多个数据请求。这是HTTP / 2协议的最高级功能,因为它允许您从一台服务器异步下载Web文件。大多数现代浏览器都将TCP连接限制为一台服务器。这样可以减少额外的往返时间(RTT),使您的网站加载速度更快,而无需进行任何优化,并且不需要域分片。

enter image description here