大家都说 HTTP/3 好。HTTP/3 确实好,基于 QUIC 协议加密、高效、速度快。但前提条件是 QUIC 协议没有被限制。
经过长时间测试,及至少 20 小时的服务器、防火墙调试测试,我得出结论:如果服务器在国外,HTTP/3 启用会导致国内访问间歇性出现问题。
如果你HTTP/2 访问没有问题,但是 HTTP/3 总是有故障,不要折腾了,HTTP/2 没什么不好的;如果使用 Cloudflare CDN,也不要开启 HTTP/3,否则一样会出现类似的问题。
我在 v2ex.com 提出了这个问题,以及在互联网上也找了很多相关资料,很多人会归结为 QoS。我觉得这可能不准确,QoS 只会限制访问,具体体现在丢包和带宽限制;但是服务器普通 UDP 包并没有丢包,iperf3 测速也正常。我推测防火墙可能对 QUIC 的访问做了根本性的限制,毕竟加密、高效、速度快,那么防火墙的审查也是很困难。
别调试了,把重点放在内容和业务上吧。
