0%

HTTP调试工具之Fiddler使用教程

Fidder 简介

Fiddler是一个用于 HTTP 调试的代理服务器应用程序,最初由微软 Internet Explorer 开发团队的前程序经理 Eric Lawrence 编写。通过Fiddler的代理服务器,可以捕获HTTPHTTPS协议流量,并且可对HTTP请求和响应做出修改,使用Fiddler可以很方便的对HTTP协议进行分析和调试。

工作原理


客户端的请求经过 Fiddler 的代理服务器转发,再由Fidder对目标服务器进行请求,得到响应之后再返回给客户端,在整个通讯过程中 Fidder 是一个中间人的角色,可以捕获到所有的请求和响应报文。

下载

Fidder 是一款免费的应用,可以直接通过官网下载,目前只支持 windows 操作系统(官网已经有 mac 和 linux 的 beta 版本),不过本文只针对 windows 操作系统 下的 fiddler 使用。

基本使用

在下载并安装完成之后,运行Fidder就会启动一个8888端口的 HTTP 代理服务器,并且默认配置下在启动完之后会自动修改IE浏览器中的 HTTP 代理,如果不需要可以在设置(Tools-Options)里面关掉此功能(推荐使用Chrome浏览器+SwitchyOmega插件来进行浏览器代理的设置)。

运行完之后可以看到如下界面,软件的左侧会话列表面板中会列出所有捕获的 HTTP 请求,当选中一个请求之后,右侧就会列出该请求的详细数据。

嗅探 HTTP 报文

嗅探报文时只需要为待调试的应用程序设置 HTTP 代理就可以在Fidder中看到 HTTP 报文了,这里就以Chrome为例来演示一下。

首先给 Chrome 浏览器设置127.0.0.1:8888的 HTTP 代理,这里使用SwitchyOmega插件来进行代理设置:

如果不安装插件也可以直接通过设置-高级-打开代理设置中进行代理设置:

然后通过浏览器访问http://www.apache.org,就可以在Fiddler中看到刚刚的 HTTP 报文:

上图中选中的都是Raw选项卡,即展示原始的 HTTP 报文内容,其它选项卡即根据报文做对应的视图展示,这里就不一一介绍了。

解码压缩报文

现在大多数 HTTP 服务器都开启了gzip、deflate之类的压缩功能,在 fiddler 中默认捕获的响应是不会解码这些压缩报文的,需要手动解码或者设置 fiddler 自动解码,如下图:

过滤报文

在 fiddler 中默认是显示所有捕获到的 HTTP 请求,但有的时候不需要看到这么多不关心的请求,对此 fiddler 提供了filter功能可以自定义过滤出需要关心的请求。

通过右侧面板-filter 选项,即可进入filter配置页面,可以支持各种各样的过滤规则,这里展示下按域名过滤,可以看到只显示了对应域名下的请求:

高级功能

HTTPS 支持

默认情况情况下Fidder是不支持嗅探HTTPS报文的,需要在设置里手动开启,通过Tools-Options打开设置面板,切换到https标签页进行以下配置:

在首次开启HTTPS支持时,会提示安装一个 Fidder 生成的CA根证书,安装完之后才能支持 HTTPS 的报文嗅探:

然后再访问下https://www.baidu.com,可以看到已经嗅探到了HTTPS的明文:

AutoResponder

使用AutoResponder可以通过配置对应的规则自动替换响应内容,在右侧面板中的AutoResponder选项卡中进行配置:


我是MonkeyWie,欢迎扫码👇👇关注!不定期在公众号中分享JAVAGolang前端dockerk8s等干货知识。

如果觉得本文对您有帮助,可以请我喝一杯咖啡☕