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

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

网站服务器升级,换用了Nginx官方的HTTP3扩展,让网站可以体验基于QUIC协议的HTTP/3。目前Chrome、FireFox、Edge浏览器都默认支持HTTP/3了,通过开发者工具就能看到网站的请求中是否支持HTTP3。当然我们也可以手动关闭Chrome/FireFox/Edge浏览器的HTTP/3。

今天年初升级服务器的时候,尝试给网站配置了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://www.weisay.com/blog/website-support-quic-http3.html | 威言威语

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

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

  1. 13楼

    我的还是最古老的

    2022-08-09 22:42 回复
  2. 12楼
    子痕Microsoft Edge 104.0.1293.47 Windows 10 x64 Edition

    又有新技术的,google这是人类网络技术的灯塔啊。

    2022-08-09 13:23 回复
    • WilliamGoogle Chrome 104.0.0.0 Windows 10 x64 Edition

      @子痕确实,技术的更新迭代就需要一些大公司领路。

      2022-08-10 15:29 回复
  3. 11楼
    酢豚Google Chrome 104.0.0.0 Windows 10 x64 Edition

    有点兴趣,有参考文章吗?以及移动端的浏览器是否支持这个?

    2022-08-09 00:15 回复
  4. 10楼
    UI柒Google Chrome 103.0.0.0 Windows 10 x64 Edition

    确实够折腾的,不过体验是好的,只是比较费时

    2022-08-08 23:08 回复
    • WilliamFirefox 103.0 Windows 10 x64 Edition

      @UI柒确实花了一些时间,开始还没有完全成功,所以一直想弄好

      2022-08-09 11:17 回复
  5. 9楼
    大峰Firefox 103.0 Windows 10 x64 Edition

    这个可能以后会慢慢普及吧 :neutral:

    2022-08-08 14:37 回复
  6. 8楼
    dujunSafari 15.6 iPhone iOS 15.6

    挂了cdn,暂时用不了。

    2022-08-08 10:42 回复
    • dujunGoogle Chrome 104.0.0.0 Mac OS X  10.15.7

      @dujun刚看了一下。现在用的 cdn 还是 HTTP1.1

      2022-08-08 10:53 回复
      • WilliamFirefox 103.0 Windows 10 x64 Edition

        @dujun国内比如阿里云、腾讯云好像也都支持http/3了,不过好像都要单独收费。

        2022-08-08 14:36 回复
  7. 7楼
    LvtuSafari 15.6 Mac OS X  10.15.7

    你这折腾的太精细了 :grin:

    2022-08-08 10:02 回复
    • WilliamFirefox 103.0 Windows 10 x64 Edition

      @Lvtu主要是年初尝试过了之后一直想把http3折腾好,当然到目前还是没有完好,后面再持续关注。

      2022-08-08 14:25 回复
  8. 6楼

    我还在观望中,暂时不上 HTTP/3

    2022-08-07 17:23 回复
  9. 5楼
    橙梓Google Chrome 104.0.0.0 Windows 10 x64 Edition

    我还写了一个 http3 测试页
    https://h3.orangii.cn

    2022-08-06 22:58 回复
  10. 4楼
    小元Firefox 103.0 Windows 10 x64 Edition

    我的貌似使用的是h2,前段时间也看到了这个h3,但是比较拉跨有点不太敢上手弄,怕弄崩了。改天看看资料自己也整一个!

    2022-08-06 22:55 回复
  11. 地板

    虽然看不懂,还是要赞一个。

    2022-08-06 19:22 回复
    • WilliamFirefox 103.0 Windows 10 x64 Edition

      @如是乎其实也不复杂,我们现在大多数用的http2和http1.1,现在更新到了http3而已。

      2022-08-06 21:15 回复
  12. 板凳

    先围观,等后续成熟了再上!

    2022-08-06 15:56 回复
  13. 沙发

    唉,我使用了 CDN ,自己服务器折腾了也没有用!国内 CDN 很少有支持HTTP/3的!

    2022-08-06 15:20 回复
    • WilliamFirefox 103.0 Windows 10 x64 Edition

      @明月登楼国外的Cloudflare倒是支持http/3,这个还没有那么普及,后面应该都会陆续有的吧。

      2022-08-06 21:12 回复

发表评论

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

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

快捷键:Ctrl+Enter