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调试权威指南》

 

posted @ 2017-09-20 15:47  风少&#127803;  阅读(517)  评论(0编辑  收藏  举报