首页 > 解决方案 > 在 Chrome 调试器“网络”选项卡中混淆 HTTP/2 协议信息

问题描述

我看到其中一些显示“h2”和一些“http/2+quic/43”,但从未显示“h2+quic/43”。在这种情况下,h2 和 http/2 有什么区别?“quic/43”中的“43”是什么?协议版本或端口号?

标签: google-chromenetwork-protocolshttp2chrome-debuggingquic

解决方案


好吧,基本上 QUIC 仍在研究中,还没有标准化。作为发明者,Google 有自己的实现(有时称为 gQUIC),该实现仅在基于 Chromium 的浏览器和少数服务器实现中可用。它基于 HTTP/2(实际上它基于 SPDY,然后标准化为 HTTP/2)。

它不再使用 HTTP/2,而是使用它的修改版本。所以无论你叫它 h2 还是 http/2 都无关紧要——两者都不是。但在高层次上,h2 和 http/2 在这种情况下可以被同等对待。

当 QUIC 在今年晚些时候(甚至可能在明年)由 IETF 正式标准化时,它将使用 HTTP/3 来反映与 HTTP/2 的分歧,因此它应该改为 h3。目前正在研究中,但还没有浏览器支持它。它现在被称为 iQUIC,但想象一下,在它成为格式标准之后它会变成 QUIC,并且 Google 迁移到它并停止使用 gQUIC(类似于 HTTP/2 正式化后已弃用的 SDPY)。gQUIC 和 iQUIC 已经完全不同了。

数字 43 是版本号。谷歌过去很快迭代 QUIC,因为他们负责两端(浏览器和服务器),尽管现在似乎已经放慢了速度(希望反映它的成熟度和需要较少更改的事实)。Chromium 源代码中曾经有一个更改日志,显示每个版本的更改内容,但现在找不到...


推荐阅读