客户端分别分支到 QUIC 与 UDP 上的 h3 或 TCP 上的 h2;路径不要求先建立 h2 连接。

HTTP3 走 UDP,HTTP2 仍走 TCP 兜底

HTTP/3 运行在 QUIC 与 UDP 之上,常用端口是 443,但协议不要求只能使用这个端口。HTTP/2 各流共用 TCP 的有序字节流,缺失片段可能阻塞无关请求的数据交付。QUIC 按流提供有序交付,某条流丢失数据不必阻塞另一条流;连接级拥塞控制与 HTTP 层依赖仍可能影响多个流,不能说每条流都有完全独立的拥塞控制或丢包恢复状态。 仅启用服务器模块还不够。客户端需要 HTTP/3 支持、可代表该源的端点、可验证的 TLS 身份,以及实际可用的 UDP 路径。发现机制和回退策略决定何时尝试它;不能把此前必须成功访问一次 TCP 服务当成所有客户端都要满足的协议前提。 两种传输,一个端口号 UDP:443 与 TCP:443 使用不同套接字,只是端口数字相同;并不是一个套接字同时监听两种传输。nginx 的 server 块可以并列配置 listen 443 quic reuseport; 与 listen 443 ssl; http2 on;。受支持系统上的 reuseport 用于每个 worker 的监听套接字,不是修复重复 server 声明或其他进程占用端口的万能选项。应先核对完整配置、实际错误与套接字归属,再判断是否需要修改。 ...

二月 12, 2028 · 3 分钟 · XB Field Notes