如何单次访问站点,用Fiddler和Wireshark生成HTTP1/HTTP2流量?
单次访问生成HTTP1与HTTP2流量的可行方案
方法1:浏览器代理例外+Fiddler手动请求(单次操作覆盖双协议)
- 给浏览器配置代理例外,将
abc.com加入例外列表,这样浏览器直接访问该域名时会走HTTP2(前提是服务器支持HTTP2)。 - 启动Wireshark并配置好SSL解密(比如导入浏览器的SSL密钥日志),开始捕获网卡流量。
- 打开浏览器访问
https://abc.com的同时,在Fiddler的Composer面板手动构造并发送一个HTTP1请求到目标域名——Fiddler会自动将请求转为HTTP1协议。 - 一次操作即可同时生成HTTP2(浏览器直连)和HTTP1(Fiddler代理)的流量,Wireshark能完整捕获两种协议的数据包。
方法2:curl并行发起双协议请求(命令行一次执行)
- 确保Wireshark已配置SSL解密(比如指定curl的密钥日志路径)。
- 在命令行执行以下并行命令:
# 直接发起HTTP2请求(curl默认支持HTTP2,需服务器兼容) curl -k --http2 https://abc.com & # 通过Fiddler代理发起HTTP1请求(Fiddler强制转为HTTP1) curl -k -x http://127.0.0.1:8888 https://abc.com & - 两条命令并行执行,一次操作即可生成双协议流量,Wireshark可捕获全部数据。
方法3:Fiddler Everywhere开启HTTP2支持(需对应版本)
- 若使用Fiddler Everywhere,可在设置中启用HTTP2代理功能,此时Fiddler可直接转发HTTP2流量。
- 访问
https://abc.com时,Fiddler会同时记录HTTP1和HTTP2请求(若服务器同时兼容双协议),Wireshark也能捕获到经过Fiddler的HTTP2加密流量(需配置SSL解密),实现单次访问获取双协议数据。
关键补充:Wireshark SSL解密配置
- 对于Chrome/Firefox:设置环境变量
SSLKEYLOGFILE指定密钥日志路径,然后在Wireshark中配置Edit > Preferences > Protocols > TLS > (Pre)-Master-Secret log filename指向该文件,即可解密HTTP2流量。 - 对于curl:使用
--ssl-key-log-file参数指定密钥日志路径,同样配置到Wireshark中即可。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

