1. 什么是Fiddler?
Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有“进出”Fiddler的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。
通过Fiddle这个目前最常用的抓包工具之一,我们可以更加方便地在Web开发时进行Debug,像之前,进行ajax接口调试时,都要console.log打印,比较麻烦。用Fiddler就可以省事很多。
抓包工具,HTTP和HTTPS调试用Fiddler,涉及TCP、UDP等其它的就用Wireshark。
其实官网这个图就非常简单地说明了Fiddler可以用来做什么,Fiddler就充当了图中放大镜部分的作用,位于客户端和服务器端之前的HTTP代理。
它能够记录客户端和服务器之间获取到的所有HTTP请求,并且可以针对特定的HTTP请求,分析请求的数据,还能设置断点,修改请求的数据,甚至可以修改服务器返回的数据。
官网地址:http://www.telerik.com/fiddler
2. 使用
2.1 下载
到官网免费下载,需要填一下邮箱:
2.2 安装
直接安装,安装过程很无脑。
安装完后启动Fiddler,然后用浏览器随便打开一个网页,发现Fiddler已经开始工作了,左边为获取到的请求列表,点击查看详情后可以在右边查看到请求的详情;列表下面有个小黑框,是执行命令行用的。
2.3 配置
2.3.1 代理设置
打开Tools -> Options -> Connections,可以看到默认端口为8888,把Allow remote computers to connect勾上,允许其他电脑的连接。
Fiddler可以代理PC端的请求,也可以代理移动端的请求,只需要将手机网络设置中的HTTP代理设置为电脑的IP地址,端口为Fiddler的默认端口号8888即可。
2.3.2 配置捕获HTTPS
会弹出一个Trust the Fiddler Root certificate的确认,点击Yes信任证书即可。
2.4 分析
2.4.1 性能数据分析(Statistics)
右侧第一个指标,Statistics,可以看到关于HTTP请求的性能以及数据分析,以及饼图。
2.4.2 会话内容(Inspectors)
Inspectors是用于查看会话的内容,上半部分是请求的内容(Request),下半部分是响应的内容(Response),可以查看header,json,text等等,选择就可以。
2.4.3 自动响应(AutoResponder)
AutoResponder允许你拦截指定规则的请求,并自动返回本地资源或Fiddler资源,从而代替服务器响应。
比如,正常打开百度是这样的:
我们在AutoResponder设置一条简单的规则,将baidu绑定到我本地的一张图片:
这个时候再打开百度,就被拦截下来了,并返回了我设置好的这张图片:
2.4.4 自定义请求发送服务器(Composer)
Composer可以自定义请求发送到服务器,通过手动创建一个新的请求,或者在会话列表中,拖拽一个现有的请求。
输入一个url地址既可以模拟请求,也可以填写一些其它属性。
2.4.5 日志(Log)
Log部分可以看到Fiddler的运行日志
2.4.6 请求过滤(Filters)
通过设置Filters设置规则来过滤掉一些请求;点击Use Filters开启功能,第一个框Hosts设置里,可以设置本地还是局域网,设置域名的过滤;下面还有一些更具体的设置。
2.4.7 请求响应时间线(Timeline)
2.5 命令使用
列表下面的黑色框框,可以输入命令进行操作:
2.5.1 基本命令
命令 | 对应请求项 | 介绍 | 示例 |
---|---|---|---|
? | All | 问号后边跟一个字符串,可以匹配出包含这个字符串的请求 | |
> | Body | 大于号后面跟一个数字,可以匹配出请求大小,大于这个数字请求 | >1000 |
< | Body | 小于号跟大于号相反,匹配出请求大小,小于这个数字的请求 | <100 |
= | Result | 等于号后面跟数字,可以匹配HTTP返回码 | =200 |
@ | Host | @后面跟Host,可以匹配域名 | @www.baidu.com |
select | Content-Type | select后面跟响应类型,可以匹配到相关的类型 | select image |
cls | All | 清空当前所有请求 | cls |
dump | All | 将所有请求打包成saz压缩包,保存到“我的文档\Fiddler2\Captures”目录下 | dump |
start | All | 开始监听请求 | start |
stop | All | 停止监听请求 | stop |
2.5.2 断点命令(进行断点测试)
命令 | 对应请求项 | 介绍 | 示例 |
---|---|---|---|
bpafter | All | bpafter后边跟一个字符串,表示中断所有包含该字符串的请求 | bpafter baidu(输入bpafter解除断点) |
bpu | All | 跟bpafter差不多,只不过这个是收到请求了,中断响应 | bpu baidu(输入bpu解除断点) |
bps | Result | 后面跟状态吗,表示中断所有是这个状态码的请求 | bps 200(输入bps解除断点) |
bpv / bpm | HTTP方法 | 只中断HTTP方法的命令,HTTP方法如POST、GET | bpv get(输入bpv解除断点) |
g / Go | All | 放行所有中断下来的请求 | g |
例如,运行命令bpu www.gzpblog.com,然后打开www.gzpblog.com,发现直接被怼掉:
我们看下这个请求,这个时候可以输入要传入的数据,然后可以选择黄色button断掉,或者绿色button继续加载:
点击绿色Run to Completion,就开始加载了:
有可能会挡掉下载的很多请求,我们可以运行go放行所有中断下来的请求。
0 条评论
来做第一个留言的人吧!