如何使用HTTP1.1实现多路复用?

3 min read

HTTP/1.1 默认采用“短连接”的方式,即每个请求都会建立一次新的连接,会造成连接的重复建立,增加了传输的时间延迟。为了解决这个问题,HTTP/2 推出了多路复用的技术,可以在同一连接上同时进行多个请求和响应。

实现多路复用的关键是:

  1. 二进制分帧:HTTP2 数据传输时采用二进制格式,并且将数据流分成很小的帧,每个帧都包含着 Frame Header 和 Frame Payload 两部分,其中 Frame Header 内标明了帧的长度、类别、标志等信息,Frame Payload 包含着具体的数据。

  2. 流和多路复用:在 HTTP2 中,每个数据流都有唯一的标识符,即 Stream ID,而在同一个连接上可以同时传输多个数据流,并且每个数据流又可分成多个帧,这样就可以实现多个请求和响应在同一个连接上进行并行传输。

总之,HTTP/2 的多路复用技术通过二进制分帧和数据流的形式,避免了建立新连接、排队和等待响应等传统的 HTTP 请求和响应的弊端,大大提高了传输效率和速度。