主题
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 流。
连接数与流数是不同的并发维度。协议并发仍受服务端限制、拥塞和应用依赖约束。
