V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hguandl
V2EX  ›  Apple

Safari 似乎不支持 Alt-Svc 头来启用 HTTP/3,只能用 DNS 的 HTTPS RR 记录

  •  
  •   hguandl · 24 天前 · 606 次点击

    迫于前段时间云服务器到期,我迁移了自己的网站。在测试连接时,我发现 Safari 无论如何也触发不了 HTTP/3 。我确认自己没有开代理,而且同样网络条件下 Google Chrome 是可以的。于是我开始研究这个神奇的现象。

    首先我经过一些搜索,学到了一类新的 DNS 记录——HTTPS Resource Records (Type 65)。这条记录支持很多字段,其中就包含了 HTTP/3 。经过测试 Safari 可以通过此记录激活 HTTP/3 ,典型例子就是 Cloudflare 的网站(包括本站)。

    上述概念其实是我第一次听说,此前我只知道通过添加 Alt-Svc 头来声明 h3 ,这样浏览器的后续连接就会尝试使用 HTTP/3 。然而这种设置对 Safari 似乎无效,典型例子是 NGINX QUIC Preview,我试了很多次都没有成功。

    我印象里早期 HTTP/3 还是草案的时候,Safari 是可以的。在正式版发布后,官方文档 TN3102: HTTP/3 in your app 也都提到了这两种方案。不知道为什么我现在用最新版本就不行了。我打算给 Apple 提反馈,大家看看能不能复现类似的情况。

    2 条回复    2024-11-17 02:09:44 +08:00
    Aoang
        1
    Aoang  
       24 天前
    不同的浏览器的实现不一样。

    Chrome 在 HTTP/3 可用时,会优先使用 HTTP/3 ,如果失败了,就回退至 HTTP/2 。

    Safari 会并发尝试使用 HTTP/2 和 HTTP/3 ,谁先完成建立就用谁。

    如果没有 HTTPS 记录,那建立连接之初就不会用 HTTP/3 ,Safari 似乎不会自动升级至 HTTP/3 。Chrome/Firefox 倒是会去做自动升级,失败回退。
    caola
        2
    caola  
       16 天前
    其实我更喜欢苹果的 HTTPS RR 方式,可惜 chrome 不支持。否则我就可以用非标准端口来做为 web 的服务器。 主页面放到国外 vps 上,通过非标准端口使用国内的服务器,非常的爽
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6133 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 02:11 · PVG 10:11 · LAX 18:11 · JFK 21:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.