在 Chrome 调试器网络选项卡中混淆 HTTP/2 协议信息

Confusing HTTP/2 protocol information in Chrome debugger Network tab

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

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

它不再真正使用 HTTP/2,而是它的修改版本。因此,无论您称它为 h2 还是 http/2 都不重要——两者都不是。但在高层次上,h2 和 http/2 在这种情况下可以被视为相同。

当 QUIC 在今年晚些时候(甚至可能是明年)由 IETF it will use HTTP/3 to reflect the diverges from HTTP/2 正式标准化时,它应该更改为 h3。目前正在处理中,但还没有浏览器支持它。它现在被称为 iQUIC,但想象一下,在它成为一种格式标准并且 Google 迁移到它并停止使用 gQUIC 之后它会变成 QUIC(类似于一旦 HTTP/2 被弃用的 SDPY 被正式化). gQUIC和iQUIC已经很不一样了

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