使用Wireshark抓取Http2协议报文

1.Http2是一个二进制协议

Http2是一个二进制协议,并且所有的主流浏览器仅支持http2 over TLS即h2,所以直接通过wireshark是看不到http2的数据包的,只能看到经过TLS加密后的数据。如下图:

2.无法抓取http2包的解决办法

Wireshark支持在TLS协议中配置密钥日志文件,然而Chrome浏览器支持将 TLS 会话中使用的对称密钥保存在外部文件中,可供 Wireshark 加密使用。

2.1. 配置系统环境变量

Chrome浏览器会自动读取SSLKEYLOGFILE环境变量,将TLS握手时使用的密钥保存到对应的文件中。
使用Wireshark抓取Http2协议报文_第1张图片
记得重启浏览器

2.2. 配置Wiresharek

点击编辑->首选项->Protocols->TLS,输入上一步环境变量SSLKEYLOGFILE对应的路径:
使用Wireshark抓取Http2协议报文_第2张图片
点击OK,使用浏览器(配置环境变量后记得重启浏览器)访问一个http2的站点,在过滤器中输入http2进行过滤:
使用Wireshark抓取Http2协议报文_第3张图片

你可能感兴趣的:(HTTP,网络,wireshark,网络,服务器,http2)