Fiddler
来源:http://blog.csdn.net/ohmygirl/article/details/17846199
慕课网教程:https://www.imooc.com/video/392
❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀ Fiddler 下载+手机抓包配置
1.手机配置详见 :https://blog.csdn.net/shimengran107/article/details/78644862
2.手机端配置好后, 打开手机浏览器,输入ip:端口号。 host为即Fiddler安装电脑的IPv4地址,端口号即为默认的8888, 如192.0.0.1:8888
并点击 “FiddlerRoot certificate”按钮,下载证书。
如提示无证书。则Tools-> Fiddler Options->https ->勾选 decrypt... 。然后手机端重新访问 ip:端口号 ,下载证书
2..fiddler抓包手机添加代理后连不上网解决办法:
手机设置代理后,无法访问网络了
(1)regedit 打开注册表,在HKEY_CURRENT_USER\SOFTWARE\Microsoft\Fiddler2下创建一个DWORD,值设置为80(十进制)
(2)编写FiddlerScript rule,点击Rules > Customize Rules,用ctr+f查找到OnBeforeRequest方法添加一行代码
if (oSession.host.toLowerCase() == "webserver:8888") { oSession.host = "webserver:80"; }
3.过滤只抓取手机
1.手机上设置代理后,这时候fiddler上抓到的是pc和app所有的请求,如果pc上打开网址,会很多,这时候就需要开启过滤功能了。
2.打开fiddler>Tools>Fiddler Options>HTTPS>...from remote clients only,勾选这个选项就可以了
...from all processes :抓所有的请求
...from browsers only :只抓浏览器的请求
...from non-browsers only :只抓非浏览器的请求
...from remote clients only:只抓远程客户端请求
4.过滤抓取指定网址
详见:https://www.cnblogs.com/sunny-sl/p/6542375.html
(1)常用域名过滤,只显示特定域名的记录:
*.baidu.com表示所有的百度二级域名会话;*baidu.com表示一级域名+二级域名的会话。设置好了后一定要点击Actions生效;
❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀ PC安装fiddler后 无法正常访问网页
PC端导入包 https://www.cnblogs.com/pingguo-softwaretesting/p/7755440.html
❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀ Fiddler 简介
Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。
客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端。基于这个原因,Fiddler支持所有可以设置http代理为127.0.0.1:8888的浏览器和应用程序。
Fiddler 作为系统代理,当启用 Fiddler 时,IE 的PROXY 毁被自动设定成 127.0.0.1 (端口号不一定是8888)。 fiddler关闭时,则代理也会一同被取消
fiddler 界面:
1.Fiddler的菜单栏,上图绿色部分。包括捕获http请求,停止捕获请求,保存http请求,载入本地session、设置捕获规则等功能。
2.Fiddler的工具栏,上图红色部分。包括Fiddler针对当前view的操作(暂停,清除session,decode模式、清除缓存等)。
3.web Session面板,Fiddler抓取到的每条http请求(每一条称为一个session),主要包含了请求的url,协议,状态码,body等信息,详细的字段含义如下图所示:
其中,#号列中的图标,每种图标代表不同的相应类型 ,来源详见:
- 请求已经发送到服务器
- 从服务器读取响应
- 请求在断点处被暂停
- 响应在断点处被暂停
- 请求使用HTTP HEAD 方法;响应应当没有body
- 请求使用HTTP POST 方法
- 请求使用HTTP CONNECT 方法;使用HTTPS协议建立连接通道
- 响应是HTML
- 响应是图片
- 响应是脚本文件
- 响应是CSS文件
- 响应是XML
- 响应是JSON
- 响应是音频文件
- 响应是视频文件
- 响应是Silverlight applet
- 响应是Flash applet
- 响应是字体
- 普通响应成功
- 响应是HTTP/300,301,302,303,307转向
- 响应是HTTP304(无变更): 使用被缓存的版本
- 响应需要一个客户端凭证
- 响应是一个Server错误
- 会话被客户端、Fiddler或者Server终止
4.状态面板
Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。
Fiddler 将每个 HTTP 请求都作为一个会话(session)保留在左侧的框框中,而你可以通过在QuickExec中输入 Fiddler 的内置命令来轻松地管理这些会话。
常见得命令有:
help 打开官方的使用页面介绍,所有的命令都会列出来
? 问号后跟字符串,Fiddler 将所有会话中存在该字符串匹配的全部高亮显示(如?.png 用来选择png后缀的图片) ps:匹配的字符串是 Protocol、Host 和 URL 中的任何子字符串。
= 等于号后边可以接 HTTP 状态码或 HTTP 方法(如 =200 表示高亮所有正常响应的会话)
@ @ 后边跟的是 Host
> 和 < 大于号(>)和小于号(<)后边跟一个数值,表示高亮所有尺寸大于或小于该数值的会话。(如输入 >5k 表示你想高亮所有尺寸大于 5KB 的会话。)
cls/clear 清屏,清空当前所有请求 (Ctrl+x 也可以清屏)
select 后边跟响应的类型(Content-Type)(如 select image)
allbut/keeponly 后边跟响应的类型(Content-Type).将所有无关的会话删除.
bps 后边跟HTTP状态码,表示中断所有为该状态码的会话。
bpu 截获request,在发起请求时中断
bpafter 截获response,是在收到响应后中断
dump 将所有的会话打包成 .zip 压缩包的形式保存到 C 盘根目录下。
5.详情和数据统计面板。针对每条http请求的具体统计(例如发送/接受字节数,发送/接收时间,还有粗略统计世界各地访问该服务器所花费的时间)和数据包分析。
(1)Statistic面板 (统计)
关于HTTP请求的性能和其他数据分析,如DNS解析的时间消耗是0ms,建立TCP/IP连接的时间消耗是7ms等等信息。
(2)inspector面板
分为上下两个部分,上半部分是请求头部分Request Headers,下半部分是响应头部分Response Headers。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。
JPG 格式使用 ImageView 就可以看到图片,HTML/JS/CSS 使用 TextView 可以看到响应的内容。Raw标签可以查看原始的符合HTTP标准的请求和响应头。Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息。Cookies标签可以看到请求的cookie和响应的set-cookie头信息。
乱码解决: 访问中文网站(GBK编码)时,在Fiddler的TextView Inspector中显示为“����”,因为Fiddler把它们按照UTF-8解码。
解决乱码具体步骤:
1、windows按钮+R
2、输入regedit +回车+是
3、HKEY_CURRENT_USER\Software\Microsoft\Fiddler2
4、右键新建,选字符串值 加上HeaderEncoding 然后值输入 GBK
5、重启Fiddler
(3)AutoResponder面板
可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文件或者得到的是Fiddler的内置响应。
如截图,就是 将http://blog.csdn.net/ohmygirl的请求拦截到本地的文件a.html。 在浏览器中访问http://blog.csdn.net/ohmygirl ,实际得到的结果是a.html的效果。说明请求已经成功被拦截到本地。同理,可使用Fiddler的内置响应。
因此,如果要调试服务器的某个脚本文件,可以将该脚本拦截到本地,在本地修改完脚本之后,再修改服务器端的内容,这可以保证,尽量在真实的环境下去调试,从而最大限度的减少bug发生的可能性。
不仅是单个url,Fiddler支持多种url匹配的方式:
I. 字符匹配
如 example可以匹配 http://www.example.com和http://example.com.cn
II. 完全匹配
以EXACT开头表示完全匹配,如上边的例子
EXACT:http://blog.csdn.net/ohmygirl
III. 正则表达式匹配
以regex: 开头,使用正则表达式来匹配URL
如:regex:(?insx).*\.(css|js|php)$ 表示匹配所有以css,js,php结尾的请求url
(4)composer面板
老版本的fiddler中叫request-builder.顾名思义,可以构建相应的请求,有两种常用的方式构建请求:
I.Parsed 输入请求的url之后executed即可,也可以修改相应的头信息(如添加常用的accept, host, referrer, cookie,cache-control等头部)后execute.
这个功能的常见应用是:“刷票”,如刷新页面的访问量
II. Raw。使用HTTP头部信息构建http请求,达到模拟请求的目的。
(5)Filter面板
Filter标签则可以设置Fiddler的过滤规则,来达到过滤http请求的目的。
a. host和zone过滤。可以过滤只显示intranet或则internet的HTTP请求(过滤内网http请求而只抓取internet的http请求)
也可以选择特定域名的HTTP请求
b. client process:可以捕获指定进程的请求。这对于调试单个应用的请求很有帮助。
c. 其他还有.....过滤特定http状态码的请求,过滤特定请求类型的http请求(如css请求,image请求,js请求等),可以过滤请求报文大于或则小于指定大小(byte)的请求:
❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀ fiddler 抓包分析
1.打开浏览器
2.输入测试网址,为了方便查看数据,在右侧设置只监控测试网站的数据,保存。
3.设置断点有两种方式,一种是在请求前,表示可以修改对服务器请求的数据,一种是在回复后,表示可以修改服务器返回的数据
4.设置为断点模式后,工具最下方出现红色向下箭头。
❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀ fiddler做web压力测试
1、设置filter,只显示需要测试的url。
2、按F11设置断点。
3、浏览器打开需要测试的url,可以看到url被fiddler拦截到,并出现在列表中。
4、在拦截到的url上点击鼠标右键,->replay -> shift+reissue request 设置访问次数,比如100
5、在列表中出现100条url,点上方的绿色箭头GO图标,开始测试,可以看到请求被发出。
6、可以查看请求的状态值,返回内容等。
以上,来源
推荐书籍:《Fiddler调试权威指南》