HTTP/2 的 Wireshark 捕获是否显示了三个帧?
Is this Wireshark capture of HTTP/2 showing three frames?
我捕获了 HTTP/2 正在获取 https://example.com
。捕获的初始行上的三个条目是:
HyperText Transfer Protocol 2
Stream: Magic
Stream: SETTINGS, Stream ID: 0, Length 18
Stream: WINDOW_UPDATE, Stream ID: 0, Length 4
我应该如何参考这些?我可以说它们是 stream 0
的三个初始帧并且是 Magic
、SETTINGS
和 WINDOW_UPDATE
帧吗?
Magic 不是帧,而是一组特殊的字节,类似于 HTTP/1.1 消息。它在所有 HTTP/2 连接的开头发送,以允许 HTTP/1.1 服务器通过 HTTP/1.1 响应优雅地拒绝连接,以便客户端知道恢复到 HTTP/1.1.它的官方名称是 Connection Preface but is often referred to as the “Magic” message. As an aside it has an interesting history.
您可以看到 Magic 消息不是帧,因为它没有流 ID 也没有任何其他必要的 frame headers which define a frame。
SETTINGS 和 WINDOW_UPDATE 消息确实是框架,并且有 several frame types defined in the HTTP/2 spec 并且在扩展中添加了更多。
我捕获了 HTTP/2 正在获取 https://example.com
。捕获的初始行上的三个条目是:
HyperText Transfer Protocol 2
Stream: Magic
Stream: SETTINGS, Stream ID: 0, Length 18
Stream: WINDOW_UPDATE, Stream ID: 0, Length 4
我应该如何参考这些?我可以说它们是 stream 0
的三个初始帧并且是 Magic
、SETTINGS
和 WINDOW_UPDATE
帧吗?
Magic 不是帧,而是一组特殊的字节,类似于 HTTP/1.1 消息。它在所有 HTTP/2 连接的开头发送,以允许 HTTP/1.1 服务器通过 HTTP/1.1 响应优雅地拒绝连接,以便客户端知道恢复到 HTTP/1.1.它的官方名称是 Connection Preface but is often referred to as the “Magic” message. As an aside it has an interesting history.
您可以看到 Magic 消息不是帧,因为它没有流 ID 也没有任何其他必要的 frame headers which define a frame。
SETTINGS 和 WINDOW_UPDATE 消息确实是框架,并且有 several frame types defined in the HTTP/2 spec 并且在扩展中添加了更多。