威言威语
我愿像茶,苦涩留心,清香予人。
威言威语
当前位置: 首页 > 网络 > 正文

网站升级体验基于QUIC协议的HTTP/3

网站服务器升级,换用了Nginx官方的HTTP3扩展,让网站可以体验基于QUIC协议的HTTP/3。目前Chrome、FireFox、Edge浏览器都默认支持HTTP/3了,通过开发者工具就能看到网站的请求中是否支持HTTP3。当然我们也可以手动关闭Chrome/FireFox/Edge浏览器的HTTP/3。
网站升级体验基于QUIC协议的HTTP/3
目录
文章目录隐藏
  1. 什么是 HTTP/3 呢?
  2. CHrome/FireFox/Edge浏览器如何关闭 HTTP/3 呢?
  3. 残留小问题
  4. 在线检测网站

今天年初升级服务器的时候,尝试给网站配置了HTTP/3协议,不过当时没有完全成功,FireFox下正常,Chrome下Waterfall(瀑布)中的stalled(已停止)时间较久,最后就放弃了。

原来使用的是第三方开发的HTTP3扩展,可能是兼容问题吧,后来正好发现nginx对HTTP3模块进行了更新,于是就换用了Nginx官方的HTTP3扩展。换了之后就发现原来Chrome下的问题消失了,于是就正式开始使用HTTP3,目前用了一个多月,算是基本正常。

什么是 HTTP/3 呢?

HTTP/3是第三个主要版本的HTTP协议。与其前任HTTP/1.1和HTTP/2不同,在HTTP/3中,将弃用TCP协议,改为使用基于UDP协议的QUIC协议实现。此变化主要为了解决HTTP/2中存在的队头阻塞问题。由于HTTP/2在单个TCP连接上使用了多路复用,受到TCP拥塞控制的影响,少量的丢包就可能导致整个TCP连接上的所有流被阻塞。

QUIC(快速UDP网络连接)是一种实验性的网络传输协议,由Google开发,该协议旨在使网页传输更快。

2019年9月,HTTP/3支持已添加到Cloudflare和Google Chrome(Canary build)。Firefox Nightly在2019年秋季之后添加支持。

2022年6月6日,IETF正式标准化HTTP/3为RFC9114。
— 维基百科

目前Chrome、FireFox、Edge浏览器都默认支持HTTP/3了,通过开发者工具就能看到网站的请求中是否支持HTTP3,右击菜单那一行,选择上“协议”,然后刷新页面就能看到页面上的元素是通过什么加载的了,如下图:

Chrome浏览器查看网站HTTP/3

当然可能部分地区的运营商会针对 UDP 协议进行 QOS 限速或丢包,反而会导致了上网体验的下降,其实也是可以手动关闭浏览器的HTTP/3。

CHrome/FireFox/Edge浏览器如何关闭 HTTP/3 呢?

Google Chrome

在浏览器地址栏输入并回车:chrome://flags/#enable-quic

Experimental QUIC protocol 设置为 Disabled

Mozilla Firefox

在浏览器地址栏输入并回车:about:config

然后搜索 network.http.http3.enabled,如果显示为 true 则双击它使其变更为 false 即为关闭

Microsoft Edge

在浏览器地址栏输入并回车:edge://flags/#enable-quic

Experimental QUIC protocol 设置为 Disabled

残留小问题

上文说到我体验下来算是基本正常,其中有个小问题,就是WordPress后台,评论列表或者文章列表的分页链接,正常应该是 https://www.weisay.com/blog/wp-admin/edit-comments.php?paged=2,但是目前却是 https://blog/wp-admin/edit-comments.php?paged=2。链接中域名丢了,当然只要我把浏览器的HTTP/3关闭,就恢复正常,目前还找不到原因所在,好在也不算多影响使用,持续在nginx-quic上关注Nginx官方对HTTP/3扩展的升级,或许这个问题后续就消失了。

在线检测网站

https://geekflare.com/tools/http3-test

https://http3check.net/

PS:可能由于我域名首页做了301跳转,http3check.net 无法正常测出http/3,geekflare.com就能正常测出。

您可能还会对这些文章感兴趣!

网站升级体验基于QUIC协议的HTTP/3:目前有 55 条评论

  1. 王光卫博客
    28楼

    这个还没用过,暂时不敢去体验,怕整不好有耽误一天时间 :?:

    2023-05-26 09:17 回复
  2. 酢豚
    27楼
    酢豚:Google Chrome 112.0.0.0 Windows 11

    时隔半年, 服务器换了镜像, 自己编译安装了之后发现站内请求全是 http/1.1 的(但是貌似支持 h3), 不知道哪里的问题. h2 模块好像没装, 和这个会有关系吗?
    listen 443 quic reuseport;
    listen 443 ssl;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

    2023-04-22 01:13 回复
  3. 小熊
    26楼
    小熊:Microsoft Edge 110.0.1587.50 Windows 11

    好东西h3,不过我现在还年php8都还没升级

    2023-02-21 18:10 回复
  4. 明月登楼
    25楼
    明月登楼:Microsoft Edge 107.0.1418.56 Windows 10

    唉,我必须用 CDN ,所以HTTP/3就算用上也是自娱自乐,不过,CloudFlare的 CDN 好像自带HTTP/3支持,可惜国内体验不到!国内网站卫士好像连HTTP/2都不支持! :lol: :mad: :mad:

    2022-11-25 10:16 回复
    • William
      WilliamFirefox 107.0 Windows 10

      @明月登楼CloudFlare的CDN是支持http3的,国内腾讯和阿里的CDN好像都支持了,不过我没有用过,这些大厂肯定都会跟进的。

      2022-11-25 10:57 回复
      • 明月登楼
        明月登楼:Microsoft Edge 108.0.1462.46 Windows 11

        @William这次用云盾就因为源服务器TLSv1.3不兼容,造成节点返回502,郁闷死了!

        2022-12-14 14:37 回复
  5. 林林
    24楼
    林林:WebView 4.0 HUAWEI

    目前http3还处于草案阶段,博客网站使用http3的速度提升对用户基本不可感。

    2022-11-19 11:32 回复
    • William
      WilliamFirefox 107.0 Windows 10

      @林林http3目前基本已经成型了,我使用下来提升并不明显,用户基本难感知,不用毕竟是新的技术还是可以试用的。

      2022-11-19 21:27 回复
    • 明月登楼
      明月登楼:Microsoft Edge 108.0.1462.46 Windows 11

      @林林是的,很多国内的 CDN 连TLSv1.3都不支持,HTTP/2都支持的不多!

      2022-12-14 14:39 回复
  6. TeacherDu
    23楼

    阿里云CDN的QUIC另收费!

    2022-11-17 19:25 回复
  7. 叶开
    22楼
    叶开:Google Chrome 104.0.0.0 Windows 10

    又拍CDN支持开启这个,不过不支持我中文域名。

    腾讯云CDN HTTP/3 上次在内测 没内测资格用不了。

    nginx 好像要编译模块,我就自己懒得折腾没用上 哈哈, 找个时间我重新装下 体验一下。

    2022-08-19 13:44 回复
    • William
      WilliamFirefox 103.0 Windows 10

      @叶开恩,国内的云服务器也都开始慢慢支持http/3了。

      2022-08-19 16:01 回复
  8. 林羽凡
    21楼

    我也想弄来着,但查了下,貌似还有设备不支持,挺头疼,放放弃了。跟webp一样,虽说好多设备支持了,但还是有个别不行,就像ios14以下,就不行。

    2022-08-17 17:01 回复
    • William
      WilliamGoogle Chrome 104.0.0.0 Windows 10

      @林羽凡确实是的,好像目前Apache还没有对QUIC支持的公开声明。Apache比较求稳,应该没有那么快。

      2022-08-18 10:01 回复

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

gravatar

question razz sad smile redface biggrin eek shock confused cool lol mad rolleyes wink cry