一、前言

抓包工具有很多,比如常用的抓包工具Httpwatch,通用的强大的抓包工具Wireshark,以及轻量级的Sniff Master抓包大师。为什么使用Fiddler?原因如下:

  1. Wireshark是通用的抓包工具,但是比较庞大,对于只需要抓取HTTP请求的应用来说,似乎有些大材小用。
  2. Httpwatch也是比较常用的HTTP抓包工具,但是只支持IE和firefox浏览器(其他浏览器可能会有相应的插件),对于想要调试chrome浏览器的http请求,稍显不足。
  3. Sniff Master作为轻量级抓包工具,虽然操作简单,但在复杂协议分析和自定义规则方面不如Fiddler灵活。

Fiddler是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理的浏览器和应用程序都可以使用。想要精通抓包,首先必须对协议比较了解,下面我们先了解一下HTTP协议。

二、HTTP协议

1、HTTP协议
支持客户/服务器模式。简单快速,无连接,无状态。
HTTP协议:默认端口:80
HTTPS=HTTP协议+SSL安全传输协议:默认端口443

2、HTTP协议请求详解
请求行,请求头,空一行,请求正文

  • Accept 指定客户端能够接收的内容类型
  • Accept-Charset 浏览器可以接受的字符编码集
  • Accept-Encoding 指定浏览器可以支持的web服务器返回内容压缩编码类型
  • Accept-Language 浏览器可接受的语言
  • Cookie HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器
  • Content-Length 请求的内容长度
  • Content-Type 请求的与实体对应的MIME信息
  • Date 请求发送的日期和时间
  • Host 指定请求的服务器的域名和端口号
  • Referer 先前网页的地址,当前请求网页紧随其后,即来路
  • User-Agent 发出请求的用户信息

3、HTTP协议响应详解
响应行,响应头,空一行,响应正文
响应头的信息和请求头很类似,这里不再赘述。

三、Fiddler简介和工作原理

1.Fiddler简介
Fiddler是位于客户端和服务器端的HTTP代理。
目前最常用的http抓包工具之一。功能非常强大,是web调试的利器。
工作中常用场景:接口调试、接口测试、线上环境调试、判断前后端Bug、mock测试、弱网测试。

2.Fiddler的工作原理:
Fiddler是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,关掉Fiddler、谷歌和IE浏览器的代理服务器会自动取消。如果Fiddler非正常退出,因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动Fiddler。

四、Fiddler六大块详解

(1) Fiddler回话列表
1.请求的ID编号
2. HTTP响应状态码
3.会话使用的协议
4.请求发送到的服务器主机名
5.数据包在服务器中的路径和文件
6.响应body的字节数
7.响应头信息Cache-Control的值
8.响应头信息Content-Type的值
9.发起请求的本地windows进程
10.注释
11.自定义备注

(2) Fiddler功能页签
Statistics页签: 通过该页签,用户可以通过选择多个会话来得到这几个会话的总的信息统计,比如多个请求传输的字节数。
Inspectors页签: 提供headers、textview、hexview,Raw等多种方式查看一条http请求的请求和响应。
AutoResponse页签: 可以抓取在线页面保存到本地进行调试,大大减少了在线调试的困难。
Composer页签: 支持手动构建和发送HTTP,HTTPS和FTP请求。
FiddlerScripts页签: 打开Fiddler脚本编辑。
Log页签: 打印日志
Filters页签: 过滤器可以对左侧的数据流列表进行过滤。
Timeline页签: 时间轴,也称为Fiddler的瀑布图,展示网络请求时间的功能。

五、Fiddler过滤器

选择Filters页签,勾选use Filters使用过滤器。
Fiddler过滤指定域名
1.第二个下拉框选择[Show Only The Following Hosts]只显示过滤的域名。
2.如只监控百度,在下面的输入框里填上:www.baidu.com

Fiddler过滤指定路径
1.勾选 Request Headers 中的[show only if URL contains]。
2.输入正则:REGEX:(?insx).*\.?baidu.com/home.*

Fiddler过滤指定文件格式
1.勾选Request Headers中的【Hide if url contains】过滤项,
2.在后面输入:REGEX:(?insx)/[^\?/]*\.(css|ico|jpg|png|gif|bmp|wav|js)(\?.*)?$

六、Fiddler 对于WEB项目的抓包和改包项目实战

打开Fiddler会自动抓包,如果想要改包的话则在AutoResponder页签进行配置。

七、Fiddler弱网测试

Fiddler应用-弱网测试

  1. Rules->Customize Rules打开Fiddle脚本编辑器,找到如下代码:
if (m_SimulateModem) {
    // Delay sends by 300ms per KB uploaded. 上行每发送1KB延迟300ms
    oSession["request-trickle-delay"] = "300";
    // Delay receives by 150ms per KB downloaded. 下行每接收1KB延迟150ms
    oSession["response-trickle-delay"] = "150";
}

修改其中的300ms和150ms用于设置上行和下行的延迟速度。

  1. Rules->Performance->勾上Simulate Modem Speeds开启模拟调制解调器速度。

八、Fiddler抓取https协议的数据报文和移动端抓包测试

1、Fiddler设置:菜单栏中选择tools->option,做如下两个设置:

  • 勾选Decrypt HTTPS CONNECTs(解密https连接)
  • 配置证书

2.Fiddler应用-抓取基于https协议的手机报文

  1. 保持android手机和电脑在同一网段
  2. 在手机WLAN设置中配置代理为电脑IP,端口8888
  3. 启动手机浏览器或App,在fiddler中可以看到抓取到的数据报文

总结
Fiddler作为一款专业的抓包工具,功能强大且灵活,适合各种网络调试场景。对于需要更轻量级工具的用户,也可以尝试Sniff Master这样的抓包工具,但Fiddler在深度分析和自定义功能上仍然具有明显优势。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐