从HTTP/1.1到HTTP/3,一次说清楚这些年的变化
时间:2025-12-11 11:57:35 阅读:277
HTTP 协议过去几年经历了不小的演进,很多人只知道版本号变了,不知道具体改了什么。
HTTP/1.1:老兵不死
1997年定稿的 HTTP/1.1 到今天还是主流。它的核心问题是队头阻塞——同一个连接上的请求必须排队,前一个没处理完,后面的就得等着。虽然引入了管线化,但实际支持不好。一个页面加载几十个资源,浏览器只能开6个连接,每个连接还得排队,难怪加载慢。HTTP/2:多路复用的改良
HTTP/2 解决了队头阻塞,引入了二进制分帧和流式多路复用,多个请求可以同时在一个连接上传输。还有服务端推送(Server Push),服务器能主动把需要的资源推给浏览器。问题是底层还是 TCP,TCP 本身的队头阻塞没解决——丢一个包就得等重传,后续所有流都受影响。HTTP/3:从 TCP 换到 QUIC
HTTP/3 把传输层从 TCP 换成了 QUIC(基于 UDP)。QUIC 解决了 TCP 的队头阻塞——一个流丢包不影响其他流。连接建立时间从1-3个RTT降到0-RTT,对移动端尤其友好,切换网络时连接不断。不过部署依赖 CDN 和服务端支持,现在大型网站基本都支持了。该不该升级?
如果你用的是 CDN,基本不用操心,CDN 厂商会帮你处理好兼容。如果自己搭服务器,Nginx 从 1.25 开始支持 HTTP/3,Apache 也有 mod_http3。建议先开启 HTTP/2,成本最低收益最大。



提供云计算服务