HTTP/2 是 2015 年标准化的 HTTP 协议第二版。它旨在解决 1997 年制定的 HTTP/1.1 的性能瓶颈,显著提升网页加载速度。
HTTP/1.1 最大的问题是一个 TCP 连接同一时间只能处理一个请求。浏览器为了并行获取资源会打开多个 TCP 连接,但连接数有上限 (通常为 6 个),资源较多的页面会产生等待。HTTP/2 通过多路复用 (Multiplexing) 解决了这个问题,一个 TCP 连接可以同时处理多个请求和响应。
HTTP/2 的三大改进:第一是多路复用 (单连接并行处理多个请求);第二是头部压缩 (使用 HPACK 算法减小 HTTP 头的体积);第三是服务器推送 (在客户端请求之前主动发送资源)。
在短链接的重定向处理中,HTTP/2 发挥着重要作用。多路复用加速了重定向后的页面加载,头部压缩也减小了重定向响应本身的体积。据 W3Techs 调查,截至 2024 年约 35% 的网站使用 HTTP/2。
使用 HTTP/2 事实上必须启用 HTTPS。虽然规范上 HTTP 也能运行,但主流浏览器仅在 HTTPS 连接下支持 HTTP/2。因此部署 HTTP/2 需要同时配置 SSL/TLS 证书。2022 年后继协议 HTTP/3 (基于 QUIC) 也已标准化,进一步提升了速度。相关书籍可在 Amazon 搜索 中查阅。