1、Fiddler 介绍
Fiddler 是一个使用 C# 编写的 http 抓包工具。它使用灵活,功能强大,支持众多的 http 调试任务,是 web、移动应用的开发调试利器。
css
1,功能特色
- 同 Httpwatch、Firebug 这些抓包工具同样,Fiddler 够记录客户端和服务器之间的全部 HTTP 请求,能够针对特定的 HTTP 请求,分析请求数据、设置断点等。
- 但 Fiddler 更为强大的是,它还能够修改请求的数据,甚至能够实现请求自动重定向,从而修改服务器返回的数据。
- Fiddler 使用也十分方便。在打开 Fiddler 的时候,它就自动设置好了浏览器的代理,经过改写 HTTP 代理,让数据从它那经过,来监控而且截取到数据。当关闭 Fiddler 的时候,它又自动帮你把代理还原。
2,下载安装
2、http 请求抓取
1,Fiddler 启动后就自动开始工做了。
- 使用浏览器随便访问几个页面,左侧区域就会将捕获的结果显示出来。
- 经过点击左下角的图标能够关闭/开启抓包功能。
2,查看请求内容
双击某个会话请求,在右侧的 Inspectors 选项卡中能够查看该会话的内容,上半部分是请求的内容,下半部分是响应的内容。
3,使用 Filters 过滤请求
因为 Fiddler 会抓取全部的 HTTP 请求,这样会形成左边的窗口不断的更新,有时可能会对咱们的调试形成干扰。咱们能够经过过滤规则的设置,从而来过滤掉那些不想看到的请求。
(1)点击 Fiters 选项卡,勾选左上角的 Use Filters 便可开启过滤器。下方有两个最经常使用的过滤条件:Zone 和 Host:
- Zone:指定只显示内网(Intranet)或互联网(Internet)的内容
- Host:指定显示某个域名下的会话
(2)好比咱们只想显示与
hangge.com 的会话,能够这么设置。(若是有红框中的文字,表示修改未生效,点击便可。)
3、AutoResponder 用法(拦截指定请求,并返回自定义数据)
AutoResponder 容许你拦截指定规则的求情,并返回本地资源或 Fiddler 资源,从而代替服务器响应。这个在咱们平时开放调试中也是颇有用的:
- 好比在前端开发中,若是发现服务器上某个 css/JavaScript 文件有问题,直接上去改会影响生产环境的稳定。利用 Fiddler 的 AutoResponder 功能,我能够将须要修改的文件重定向到本地文件上,这样就能够基于生产环境修改并验证,确认后再发布。
- 再好比服务端提供了接口和数据格式给前端调用,可能因为某些缘由,接口还未开发完毕、或者返回数据有异常。为了避免影响开发进度,前端仍然能够继续调用这个接口,而后经过 Fiddler 将请求转向本地的数据文件上。
(1)好比
hangge.com 首页用到了 jQuery,假设咱们要修改这个 js。
(2)首先将 js 文件保存到本地(若是本地已经有这个文件,能够跳过这步)
(3)接着打开 AutoResponder 标签设置,勾选前面两个复选框,开启 Fiddler 的请求自动重定向功能。
- 第一个复选框的做用是开启或禁用自动重定向功能,咱们就能够在下面添加剧定向规则了。
- 第二个复选框框勾上时,不影响那些没知足咱们处理条件的请求。
(4)下面就要建立重定向规则了,将目标是这个 js 的 HTTP 请求重定向到本地文件。咱们能够经过“Add…”按钮手动添加规则,不过这个 URL 已经出如今咱们的 session 列表中,能够直接拖动过来。
(5)接着修改这个规则。点击下方的下拉框,选择“Find a file…”,就能够选择本地的文件做为返回的 body 内容。
(6)这里咱们选择刚才保持下来的 js 文件。这样咱们的请求重定向就设置好了。
(7)试着修改下本地这个 js 文件。好比咱们在开头加了个 alert 语句。
(8)刷新页面,从新访问就能够看到效果了。(若是浏览器有缓存,要先清下缓存)
4、解密 HTTPS 的网络数据
一般状况下,对于 HTTPS 请求,咱们捕获后是没法看到里面的数据。
不过 Fiddler 能够经过伪造 CA 证书来欺骗浏览器和服务器,从而实现解密 HTTPS 数据包的目的。大概原理就是在浏览器面前 Fiddler 假装成一个 HTTPS 服务器,而在真正的 HTTPS 服务器面前 Fiddler 又装成浏览器。
(1)要开启 HTTPS 解密,咱们依次点击菜单栏 Tools -> Telerik Fiddler Options
(2)在弹出窗口中,勾选 HTTPS 标签页下的 Decrypt HTTPS Traffic。这是会弹出个对话框询问是否安装证书,选择 Yes 安装便可。
(3)再次访问 HTTPS 页面,能够发现数据已经够被成功解析了。
5、自定义请求发送到服务器
在 Composer 面板中,咱们能够向服务器发送自定义请求,能够手动建立一个新的请求,也能够从会话表中,拖拽一个现有的请求。
使用时咱们只须要提供简单的 URLS 地址便可。固然还能够在 RequestBody 定制一些属性,如模拟浏览器 User-Agent 等等。
6、抓取 iPhone / Android 设备的数据包
想要 Fiddler 抓取移动端设备的数据包,其实很简单。只要设置代理,让这些数据经过 Fiddler 便可。
(1)首先确保 PC 和手机是在同一个局域网下。打开 Fidder,点击菜单栏中 Tools –> Telerik Fiddler Options
(2)勾选 Connections 选项卡中的“Allow remote computers to connect”容许远程链接。
- 勾选后可能会要求重启 Fiddler,那就重启一下。
- 默认代理端口是 8888,能够不须要修改。
(3)将手机端的代理设置为 PC 的 IP 和端口(这里假设咱们 PC 地址为 192.168.1.101)
(4)接着打开手机浏览器,访问 PC 的地址+端口
(5)在打开的页面中点击“FiddlerRoot certificate”,下载并安装证书。
(6)安装完了证书,使用用手机访问应用,就能够看到截取到的数据包了。(这里我使用百度外卖 App 随便测试了下)
原文出自:www.hangge.com 转载请保留原文连接:http://www.hangge.com/blog/cache/detail_1697.htmlhtml