1.Http2是一个二进制协议
Http2是一个二进制协议,并且所有的主流浏览器仅支持http2 over TLS即h2
,所以直接通过wireshark是看不到http2的数据包的,只能看到经过TLS加密后的数据。如下图:
2.无法抓取http2包的解决办法
Wireshark支持在TLS协议中配置密钥日志文件,然而Chrome浏览器支持将 TLS 会话中使用的对称密钥保存在外部文件中,可供 Wireshark 加密使用。
2.1. 配置系统环境变量
Chrome浏览器会自动读取SSLKEYLOGFILE
环境变量,将TLS握手时使用的密钥保存到对应的文件中。
记得重启浏览器
2.2. 配置Wiresharek
点击编辑->首选项->Protocols->TLS
,输入上一步环境变量SSLKEYLOGFILE
对应的路径:
点击OK,使用浏览器(配置环境变量后记得重启浏览器)访问一个http2的站点,在过滤器中输入http2进行过滤: