下载方式:百度搜索下载 关键字【fiddler】
介绍:
Fiddler是强大且好用的Web调试工具之一,它能记录客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展,在web开发和调优中经常配合firebug使用。
Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。 对于PC端Fiddler启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以如果需要监听PC端Chrome网络请求,将其代理改为127.0.0.1:8888就可以监听数据了,手机端按照下面的设置即可完成整个系统的http代理。
下载安装之后,需要设置fiddler,设置手机代理,安装信用证书
我们以 PC(window) + fiddler(version 4.0) + iPhone 为例
1.配置PC端fiddler
(1).配置fiddler允许监听https
打开fiddler -> Tools -> Options -> HTTPS 选项框下
勾选
capture https contents
decrypt https traffic
...from all processes
Ignore server certificate errors (unsate)<监听不可信的证书的HTTPS >
第一次会提示是否信任fiddler证书及安全提醒,选择yes,之后也可以在系统的证书管理中进行管理。
image.png
(2)配置Fiddler允许远程连接
fiddler -> Tools -> Options -> connections选项框下
如下图的菜单中点击connections,选中allow remote computers to connect,默认监听端口为8888,若被占用也可以设置,配置好后需要重启Fiddler,如下图:
image.png
2.配置手机端(以iphone为例)
1).获取fiddler所在机器IP地址
2).配置iPhone无线局域网代理
3).安装手机证书
1).获取fiddler所在服务器IP地址
image.png
2).配置Iphone无线局域网代理
1>.打开iPhone设置 -> 无线局域网,选择并点击我们已连接的无线网,进入无线网详情页面;下拉至最下方,选择HTTP代理 -> 配置代理
2>. 选择手动,填入服务器IP及端口号后点击“存储”保存即可,如这里我们填入192.168.20.145(fiddler所在主机)及8888
1.png
2.png
3).安装手机证书
这一步配置是为了Fiddler可以抓取手机上的HTTPS请求。如果你只需抓取HTTP请求,可以忽略这一步。
1>.在iPhone Safiri浏览器中打开[http://192.168.2.177:8888](http://192.168.2.177:8888/),其中ip地址为Fiddler所在机器ip,8888为配置的Fiddler代理端口号
2>. 点击”FiddlerRoot certificate”下载证书
3.png
4.png
3.抓包测试
1).我们在safiri浏览器中打开任意网址,我们以百度为例
image.png
2).当然我们还可以打开app,fiddler默认会抓取所有经过fiddler代理的请求
注意事项:
手机和fiddler所在主机必须在同一个局域网下面
如果无法连接上代理,请重启fiddler 或者 重启计算机 或者 关闭计算机上的虚拟机
遇到问题与解决方案:
问题:(Safari浏览器打不开该网页,因为无法与服务器建立安全的链接),如下图
解决方案: 设置 =>通用 => 关于本机 => 证书信用设置 => 针对根证书启用完全信任(DO_NOT_TRUST_FIDDLERROOT)
image.png
fiddler使用技巧
(1).使用过滤条件,板块划分如下图
1.是否启用filters。
2.我们可以维护多套filters,在不同的情形下加载不同的filter,在Actions中可以把当前的filter保存起来,也可以加载以前保存的filter,如下图6.png。
3.根据主机名信息的filter。其中第一个下拉框是只显示内网或者外网选项,个人觉得用处很有限,如下图7.png。另一个是下拉框结合它下面的输入框来完成根据主机名信息显示或者隐藏或者标记指定请求,如下图8.png。下图9.png是一个例子,可以简单理解为隐藏对本机的请求。
4.根据进程信息的filter,第一个checkbox选上就可以选择进程了,那么fiddler将只显示该进程发出的请求,如下图10.png。另外两个一个是指关心IE,另一个是隐藏来自service host的请求。
5.根据request header的filter。这个可能是我觉得比较有用的一块儿了。
Show only if URL contains 和 Hide if URL contains 使用方法类似 功能相反。都是url中包含某些字符的filter,多种情况空格分隔。支持正则表达式和完全匹配,如下是个例子(11.png),可以简单理解为隐藏所有js和css请求。
6.这个部分是各种各样的断点,大家应该知道fiddler是有断点功能的,可以在请求发送时断住,之后修改请求,再发送。当然也可以在响应的时候断住,做修改。而且fiddler还可以模拟响应,根本不发送给server端,在项目开发阶段,server端没有准备好API这个就特别有用了,或者用了复现一些问题。
7.如果server端的响应代码属于或者不属于哪一类就隐藏,比较简单。
8.这部分是根据响应类型和大小的filter,前一半是显示隐藏的filter,后block的filter。block的filter也挺有意思,如果你选中了block css那么浏览器就加载不到css了,如下图12.png。
9.是对response header的flag和修改。比较有用的是如果你想知道哪些请求修改了cookie那么就可以选中第一个checkbox。
5.png
6.png
7.png
8.png
9.png
10.png
11.png
12.png
网友评论