Skip to content

HTTP 连接与协议演进 ​

HTTP/1.0、HTTP/1.1 与持久连接 ​

HTTP/1.0 默认按请求关闭连接,也有历史性的 Keep-Alive 扩展。HTTP/1.1 默认允许持久连接,Connection: close 表示关闭。

连接复用依赖正确的消息边界。HTTP 持久连接与 TCP 的空闲探测功能独立。

HTTP/2 二进制分帧与多路复用 ​

HTTP/2 将消息拆成带流标识的二进制帧。多个流的帧可交错发送,HPACK 用于压缩头字段。

底层 TCP 丢失字节时,有序交付会暂缓后续字节,即使后续数据属于其他 HTTP/2 流。

HTTP/3 与 QUIC ​

HTTP/3 把请求和响应映射到 QUIC 流。QUIC 在 UDP 上实现安全连接、可靠流、丢包恢复和拥塞控制,HTTP/3 使用 QPACK 压缩字段。

一条流缺失的数据一般不会阻止其他流按序交付。连接级拥塞限制与协议控制依赖仍会影响多个流。

各版本的连接复用与请求并发 ​

HTTP/1.1 常用多个连接获得并发,流水线响应仍按请求顺序。HTTP/2 在 TCP 连接内并行传输多个流,HTTP/3 使用 QUIC 流。

连接数与流数是不同的并发维度。协议并发仍受服务端限制、拥塞和应用依赖约束。

基于 MIT 许可发布