这是HTTP / 2的Wireshark捕获显示的是三帧吗?

时间:2019-07-16 19:55:03

标签: wireshark http2

我捕获了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的三个初始帧,并且是MagicSETTINGSWINDOW_UPDATE的帧吗?

1 个答案:

答案 0 :(得分:2)

魔术不是帧,而是一组特殊的字节,类似于HTTP / 1.1消息。它在所有HTTP / 2连接的开始处发送,以允许HTTP / 1.1服务器通过HTTP / 1.1响应优雅地拒绝该连接,因此客户端知道恢复为HTTP / 1.1。它的正式名称为Connection Preface,但通常称为“魔术”消息。除了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,并且自扩展名以来已经添加了更多。