启用 HTTP/3 后,旧浏览器打不开页面或加载不全,不一定是网站源站故障。先确认异常是否只出现在特定浏览器、网络或设备,再检查 CDN 是否仍允许旧协议连接。内容分发网络支持HTTP/3时的浏览器兼容与回退,关键不是强迫客户端使用新协议,而是让协商失败时仍能走 HTTP/2 或 HTTP/1.1。
先弄清楚客户端连接的是哪一层
HTTP/3 基于 QUIC,通常通过 UDP 443 建立连接;HTTP/2 和 HTTP/1.1 则通常使用 TCP。浏览器与 CDN 边缘节点协商客户端连接协议,CDN 到源站的连接是另一段链路,两者不必使用相同协议。因此,源站只支持 HTTP/1.1,并不必然妨碍浏览器通过 HTTP/3 访问 CDN。
支持 HTTP/3 的浏览器可能通过 Alt-Svc 等机制获知服务可用 HTTP/3。较旧的浏览器可能不支持该机制或相关协议;企业代理、防火墙也可能阻断 UDP 443。正常配置下,客户端应能回退到 TCP 协议,但具体切换速度与浏览器、网络设备及 CDN 实现有关。
CDN 上应保留哪些兼容设置
- HTTP/2 和 HTTP/1.1 不要一并关闭:启用 HTTP/3 时,确认边缘侧仍接受旧协议。没有 HTTP/3 能力的客户端便可使用其支持的协议。
- 不要用跳转强制协议:协议由客户端与服务器协商,不应通过页面跳转或改写链接要求浏览器切换到 HTTP/3。
- 检查 Alt-Svc 发布:若 CDN 提供相关开关,先确认广告的服务端口与实际配置一致。回滚或调整后,可按产品能力撤销旧的服务提示;浏览器缓存可能导致变更不会立刻对所有客户端生效。
- 核对 HTTPS 配置:确认访问域名的证书有效、TLS 配置正常,并检查 CDN 是否要求单独启用 HTTP/3。证书或 HTTPS 故障不能靠协议回退解决。
- 不要把边缘协议与回源协议混为一谈:分别查看客户端到边缘、边缘到源站的协议设置和错误日志,避免误改源站连接来处理浏览器兼容问题。
按步骤排查并安全回退
- 限定故障范围。记录出问题的浏览器及版本、操作系统、网络环境、访问域名和发生时间,并用同一设备切换网络复测。若换网络后恢复,优先排查 UDP 443 是否受限。
- 对比协议结果。在浏览器开发者工具的 Network 面板中查看 Protocol 列(若该浏览器提供),并对照 CDN 请求日志里的客户端协议字段。确认异常请求是否使用 HTTP/3,以及失败发生在连接、握手还是资源响应阶段。
- 检查 CDN 兼容开关。确认 HTTP/2、HTTP/1.1 仍开启,核对 HTTP/3 是否仅对目标域名启用,并检查安全策略、访问规则或代理设置是否针对 UDP 连接作了限制。
- 做小范围验证。优先在测试域名或有限流量范围启用 HTTP/3,同时保留旧协议。分别用新浏览器、较旧浏览器及受限网络访问页面,检查 HTML、图片、脚本和接口请求是否完整。
- 必要时关闭 HTTP/3 做对照。若关闭后故障消失,保留证据并联系 CDN 支持排查边缘配置或客户端网络兼容性。短期可对受影响域名关闭 HTTP/3;不要同时关闭 HTTP/2,以免扩大影响。
怎样判断回退已经生效
验证时不能只看首页是否打开:还要检查登录、表单提交、静态资源和关键接口。可在多种网络环境重复访问,并对照 CDN 日志确认旧客户端实际使用 HTTP/2 或 HTTP/1.1。若浏览器仍尝试 HTTP/3 后才连接成功,可能是 UDP 被拦截后的回退延迟;这与完全无法访问不同,应结合连接耗时和失败记录判断。
内容分发网络支持HTTP/3时的浏览器兼容与回退,应以“新协议可用、旧协议不断、异常可快速关闭”为原则。启用后分阶段观察请求成功率、协议分布和错误类型,再决定是否扩大范围;故障定位期间保留切换前的配置,便于迅速恢复。
常见问题
旧浏览器不支持 HTTP/3,就一定打不开网站吗?
不一定。只要 CDN 仍开放 HTTP/2 或 HTTP/1.1,通常可以通过旧协议访问。
关闭 HTTP/3 会影响源站使用的协议吗?
通常不会直接改变回源协议。客户端到 CDN 与 CDN 到源站是两段连接,应分别查看和配置。
用户网络屏蔽 UDP 443,应该怎么处理?
确认 CDN 保留 TCP 上的 HTTP/2 或 HTTP/1.1,并在受限网络验证回退。若异常仍在,再检查代理、防火墙和 CDN 规则。
是否应该为旧浏览器单独做跳转?
一般不需要。协议协商和回退应由浏览器与 CDN 处理;应先修正边缘协议配置,而不是按浏览器跳转页面。