http/2 多路复用技术

虽然 HTTP 1.1 默认启用长TCP链接,但全部的请求-响应都是按序进行的(这里的长链接可理解成半双工协议。即使是HTTP 1.1引入了管道机制,也是如此)。复用同一个TCP链接期间,即使是经过管道同时发送了多个请求,服务端也是按请求的顺序依次给出响应的;而客户端在未收到以前所发出全部请求的响应以前,将会阻塞后面的请求(排队等待),这称为"队头堵塞"(Head-of-line blocking)。服务器

HTTP/2复用TCP链接则不一样,虽然依然遵循请求-响应模式,但客户端发送多个请求和服务端给出多个响应的顺序不受限制,这样既避免了"队头堵塞",又能更快获取响应。在复用同一个TCP链接时,服务器同时(或前后)收到了A、B两个请求,先回应A请求,但因为处理过程很是耗时,因而就发送A请求已经处理好的部分, 接着回应B请求,完成后,再发送A请求剩下的部分。HTTP/2长链接能够理解成全双工的协议。blog

相关文章
相关标签/搜索