先看对照表理解差异,再用下面的清单逐项确认。关键前提:HTTP/2 与 HTTP/3 在浏览器侧都要求 HTTPS,没有证书就没有协商的可能。启用前建议先在测试环境验证,确认无误再全量切流。
迁移检查清单
工具说明
从 HTTP/1.1 升级到 HTTP/2,再升级到 HTTP/3,收益与成本并不相同。本工具把三者的关键差异摊开对照,并给出一份迁移检查清单,用来判断当前站点还缺哪些前置条件。
三个版本的核心差异
- HTTP/1.1:文本协议,一个连接同时只能处理一个请求,浏览器靠开多个连接来并发,带宽利用率低。
- HTTP/2:二进制分帧,同一连接上多路复用,头部用 HPACK 压缩。大幅减少连接数,但 TCP 层面仍存在丢包导致的队头阻塞。
- HTTP/3:基于 QUIC(跑在 UDP 上),队头阻塞被限制在单个流内,连接迁移与 0-RTT 重连都更友好。适合移动网络与高丢包环境。
升级后哪些老优化反而成了负担
- 域名分片:HTTP/1.1 时代为了突破并发限制把资源分散到多个子域,现在会破坏多路复用的优势,应当合并回主域。
- 雪碧图与内联小图:曾经为了减少请求数,现在多路复用让请求变便宜,过大的雪碧图反而拖慢首屏关键资源。
- 文件合并:把几十个脚本合成一个大文件,会导致任何一处改动都要重新下载整包,在支持多路复用的环境下拆分粒度更细反而更好。
- 预连接与域名预解析:针对第三方域名的优化仍有价值,但站内子域名的相关配置可以精简。
怎么验证是否已启用
- 在浏览器开发者工具的网络面板里看协议列,显示 h2 或 h3 说明已协商成功。
- 用命令行工具查看响应头与协议版本,确认服务器返回的是 HTTP/2 及以上。
- 注意 HTTP/3 需要客户端与服务端都支持,且部分网络环境会拦截 UDP,可能自动回落到 HTTP/2——这是正常现象。
你可能还想问
启用 HTTP/2 需要改代码吗?
通常不需要。HTTP/2 对应用层是透明的,浏览器与服务器通过 TLS 握手时的 ALPN 扩展自动协商版本,页面代码与资源引用方式都不用改。需要做的多是服务器或 CDN 侧的配置,比如开启协议支持、确认 TLS 版本够新。唯一的例外是原来为了 HTTP/1.1 做的域名分片等优化,建议一并清理。
HTTP/3 比 HTTP/2 快多少?
没有统一数字,取决于网络质量。在丢包率高、延迟不稳定的移动网络下,HTTP/3 的优势比较明显,因为它的队头阻塞只影响单个流;而在网络质量很好的环境下,两者差距通常很小甚至感知不到。所以升级 HTTP/3 的收益主要面向网络条件差的用户,稳定的光纤环境下不要期待有肉眼可见的变化。
为什么我配了 HTTP/3 但浏览器还是用 HTTP/2?
常见三个原因:客户端不支持、中间网络拦截了 UDP、CDN 节点还没开启该协议。HTTP/3 基于 UDP,部分企业网络与部分运营商会对 UDP 限速或阻断,浏览器探测失败后会自动回落到 HTTP/2,这是设计上就允许的行为。可以先在几个不同网络环境下测试,确认不是普遍性回落。
升级后需要重新提交搜索引擎吗?
不需要。协议版本对搜索引擎是透明的,抓取工具会自动跟随服务器协商结果。真正影响收录的是页面可访问性与内容质量,而不是协议版本。不过升级过程中如果出现配置错误导致某些路径返回异常,反而会影响抓取,所以务必在切换后抽查主要页面的返回状态。
速查在线工具箱