今天年初,服务器升级时,我尝试过将 HTTP/3协议配置到网站上,但当时并不成功, FireFox是正常的, Chrome Waterfall (瀑布)中的 stalled (stalled)时间较长,最后放弃。
原来是第三方开发的HTTP3扩展,可能是兼容性的问题,后来发现 nginx更新了HTTP3模块,就换成了 Nginx的官方HTTP3扩展。后来发现原来 Chrome的问题已经解决了,于是正式开始使用HTTP3,到目前为止已经使用了一个多月。
![「其他分享」网站升级体验基于QUIC协议的HTTP/3插图 「其他分享」网站升级体验基于QUIC协议的HTTP/3插图](https://static.esw.eswlnk.com/2022/08/20220814070018579.png-esw)
HTTP/3是 HTTP协议的第三大版本。与其前任 HTTP/1.1、 HTTP/2不同, HTTP/3协议采用了基于 UDP的 QUIC协议。这个改变主要是为了解决 HTTP/2中的队头阻塞。由于 HTTP/2在一个 TCP连接上使用多路复用,因此在 TCP拥塞控制下,很小的丢包会导致整个 TCP连接的所有数据流被阻塞。
快速 UDP网络连接(QUIC)是由谷歌开发的实验性网络传输协议,旨在提高网页传输速度。
2019年9月, Cloudflare和谷歌 Chrome都支持 HTTP/3。Firefox Nightly增加了对2019年秋季之后的支持。
IETF于2022年6月6日正式将 HTTP/3标准化为RFC9114。
《维基百科》
目前 Chrome、 FireFox和 Edge浏览器都支持 HTTP/3,用户可以通过开发者工具查看是否支持HTTP3,点击菜单,选择上传“协议”。
当然可能部分地区的运营商会针对 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后台,评论列表或者文章列表的分页链接,正常应该是 xxx.com//wp-admin/edit-comments.php?paged=2,但是目前却是 https://xxx.com/wp-admin/edit-comments.php?paged=2。链接中域名丢了,当然只要我把浏览器的HTTP/3关闭,就恢复正常,目前还找不到原因所在,好在也不算多影响使用,持续在nginx-quic上关注Nginx官方对HTTP/3扩展的升级,或许这个问题后续就消失了。
本站目前使用HTTP/2和HTTP/1.1