有人可以解释与HTTP / 2相关的多路复用及其工作原理吗?
答案 0 :(得分:3)
简单答案(Source):
多路复用意味着您的浏览器可以发送多个请求并接收多个响应"捆绑"进入单个TCP连接。因此,为来自同一服务器的文件保存了与DNS查找和握手相关的工作负载。
复杂/详细的答案:
请注意@BazzaDP提供的答案。
答案 1 :(得分:3)
由于@Juanma Menendez的图表令人困惑,因此答案是正确的,因此我决定对其进行改进,以澄清多路复用和流水线之间的区别,即经常混淆的概念。
管道(HTTP / 1.1)
多个请求是通过同一 HTTP连接发送的。响应的接收顺序相同。如果第一个响应花费大量时间,则其他响应必须排队等候。与CPU流水线相似,在CPU流水线中,一条指令被解码而另一条指令被提取。同时执行多个指令,但它们的顺序得以保留。
多路复用(HTTP / 2)
多个请求是通过同一 HTTP连接发送的。响应以任意顺序接收。无需等待阻止其他人的缓慢响应。类似于现代CPU中的乱序指令执行。
希望改进后的图像可以澄清区别:
答案 2 :(得分:1)
HTTP 2.0中的复用是浏览器和服务器之间的关系类型,它们使用单个连接并行传递多个请求和响应,从而在此过程中创建许多单独的帧。
Multiplexing脱离了严格的请求-响应语义,并启用了一对多或多对多关系。
答案 3 :(得分:1)