You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

排查Jetty 12.1演示服务器HTTP/3无法生效的问题

HTTP/3未在Jetty 12.1.4中启用的排查方案

问题概述

已部署Jetty 12.1.4演示服务器并启用HTTP/3协议,控制台显示HTTP/3启动正常,已将TCP和UDP端口统一设置为443,alt-svc响应头返回h3=":443",浏览器信任证书,但所有请求仍使用HTTP/2协议。

环境信息:

  • 操作系统:Fedora release 43
  • Java版本:
openjdk version "25.0.1" 2025-10-21
OpenJDK Runtime Environment (Red_Hat-25.0.1.0.8-1) (build 25.0.1+8)
OpenJDK 64-Bit Server VM (Red_Hat-25.0.1.0.8-1) (build 25.0.1+8, mixed mode, sharing)
  • 浏览器:Firefox 145.0、Chrome 142.0.7444.162

服务器端排查步骤

  • 验证HTTP/3模块配置
    确认start.ini或start.d目录中已启用quic、http3模块,且依赖的ssl、alpn模块正常加载。检查HTTP/3连接器配置,确保UDP端口绑定正确,且SSL上下文与TCP连接器使用同一可信证书,避免证书不匹配。
  • 查看调试日志
    开启DEBUG级别日志,重点关注org.eclipse.jetty.quic和org.eclipse.jetty.http3包的输出,排查是否存在QUIC连接失败的错误(如证书验证异常、UDP端口阻塞)。
  • 测试UDP端口可达性
    使用nc -u <服务器IP> 443测试UDP 443端口连通性,确认Fedora防火墙未拦截UDP流量,同时检查云服务商或网络设备是否限制QUIC协议。
  • 完善alt-svc响应头
    补充ma(最大存活时间)参数,例如设置为alt-svc: h3=":443"; ma=2592000,避免浏览器因缓存策略忽略HTTP/3切换提示。

浏览器端排查步骤

Chrome

  • 输入chrome://flags/#enable-quic,确认QUIC协议已启用(默认开启,若禁用需切换为Enabled)。
  • 打开chrome://net-internals/#http3,查看HTTP/3会话状态,确认是否有QUIC连接尝试记录。
  • 清除浏览器缓存和站点数据,避免旧的alt-svc缓存影响协议切换。
  • 打开开发者工具(F12),在“网络”面板查看请求的“协议”列,同时确认响应头中alt-svc参数正确。

Firefox

  • 输入about:config,搜索network.http.http3.enabled和network.http.http3.prefer,确保两者均设为true。
  • 打开about:networking#http3,查看QUIC连接状态和统计信息。
  • 清除浏览器缓存,尤其是目标站点的缓存数据,强制浏览器重新解析alt-svc头。
  • 在开发者工具“网络”面板中添加“协议”列,直接查看请求使用的协议类型。

额外注意事项

  • Jetty 12.1.x的HTTP/3+QUIC为实验性特性,需确认是否存在与Java 25的兼容性问题。
  • 确保服务器时间与客户端时间同步,避免证书有效期验证失败导致QUIC连接被拒绝。

内容的提问来源于stack exchange,提问作者Michał Niklas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 01:20:54