[study]Fiddler入门使用手册

Fiddler是强大且好用的Web调试工具之一,它能记录客户端和服务器的http和https请求, Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。

下面主要从以下三个方面进行简单介绍:

  1. Fiddler安装及配置
    Fiddler下载->PC端安装->PC端配置->手机端安装及配置→验证是否成功
  2. 如何使用Fiddler进行抓包分析
    Fiddler抓包分析基本功能介绍:Header、Statistic、Inspectors 、AutoResponder 、Composer选项卡,拦截一个Post请求,如何修改请求参数及模拟服务端返回各种状态码和返回数据。
  3. Fiddler遇到的常见问题

Fiddler安装及配置

PC端安装及配置

需要1台PC做辅助,且PC需要与手机在同一局域网内或有独立公网IP

一、安装Fiddler
下载完成后,可以自定义安装
下载地址:http://www.telerik.com/fiddler

二、安装Fiddler证书生成器
下载地址:
http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2

打开Fiddler,点击工具栏中的Tools->Fiddler Options,切换到HTTPS选项卡,选中Capture HTTPS CONNECTs ,Decrypt HTTPS traffic和Ignore server certificate errors,如下图。会弹出安装证书的提示,一路点是或确定安装即可。
在这里插入图片描述
1.重启fiddler,仍停留在 HTTPS 选项卡,点击右侧Actions,出现下拉菜单,点击 Export Root Certificate to Desktop,此时证书会生成到桌面上,名为 FiddlerRoot.cer,点OK保存。
在这里插入图片描述
2.配置Fiddler允许远程连接

如上图的菜单中点击Connections选项卡,选中Allow remote computers to connect,默认监听端口为8888,若被占用也可以设置,配置好后需要重启Fiddler。

手机端安装及配置

以Android设备为例,Ios设备除了导入证书方式不同,其他操作同Android设备。
1、获取PC端IP
PC端命令行ipconfig查看Fiddler所在机器IP,本机IP为10.x.x.xxx,如下图.
在这里插入图片描述
2、手机端安装并导入证书

  1. 下载证书
    

手机端浏览器访问http://10.9.0.177:8888,即Fiddler所在机器IP加上端口,代理上网。如下图。在这里插入图片描述
点击FiddlerRoot certificate下载证书
在这里插入图片描述
如果未设置锁屏密码,可能会提示“您需要先设置锁屏密码才能使用凭据存储”,点击确定进行设置。

  1. 导入证书(部分Android机型不需要这一步)
    

设置——>安全——>从存储设备安装——>从Fiddler的下载路径找到证书,点击安装即可.
1.手机端设置代理
之后打开手机连接到同一局域网的wifi,并修改该wifi网络详情→显示高级选项,选择手动代理设置,主机名填写Fiddler所在机器ip,端口填写Fiddler端口,默认8888,如下图。
在这里插入图片描述
验证Fiddler是否抓包成功
这时,手机上的网络访问在Fiddler就可以查看了,如下图XXXXApp的网络请求。在这里插入图片描述
停止网络监控的话去掉wifi的代理设置即可,否则Fiddler退出后手机就上不网了哦。
如果需要恢复手机无密码状态,Android端之后可以通过系统设置-安全-受信任的凭据-用户,点击证书进行删除或清除凭据删除所有用户证书,再设置密码为无。
注意:Ios Fiddler抓包证书信任设置
https://support.apple.com/en-nz/HT204477
iOS10.3系统开始,需要点击“通用”-“关于本机”-“证书信任设置”,选中“针对根证书启用完全信任”,才能抓到Node/RN页面请求

Fiddler抓包分析

Fiddler基本界面
在这里插入图片描述
一、统计信息Statistic
关于HTTP请求的性能和其他数据分析
在这里插入图片描述
一些基本性能数据:如DNS解析的时间消耗是8ms,建立TCP/IP连接的时间消耗是8ms等等信息。

二、查看器Inspectors
选中某一行网络请求,右侧会显示具体请求内容(Request Header)和返回内容(Response Header and Content)
分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。

Inspectors tab下可以多种方式查看Request消息
在这里插入图片描述

Inspectors tab下可以多种方式查看Response消息
在这里插入图片描述

抓包分析举例
1.请求数据经过客户端压缩的Post请求
Post接口: https://xxx.xxxx.com/xxxxx/xxxx/xxx/upload(上传通讯录接口),如下图所示。在这里插入图片描述

客户端向服务端传输的数据是经过处理的,需要服务端nginx配lua来解gzip包。

如果服务端未配置解压缩或者配置有问题,数据会显示乱码,如下图所示。

注意:Fiddler中Decode选项是处于未选中状态,即Fiddler没有自动进行解压。在这里插入图片描述

2.带有cookie的Get请求

接口:https://xxxxx.cn/xxxxx/xxxx/card?u=xxxxx&share_channel=xxxxxx
在这里插入图片描述

三、重定向AutoResponder(可以修改FiddlerScript)

Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。

拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文件或者得到的是Fiddler的内置响应。

Fiddler支持的拦截重定向的方式:
在这里插入图片描述

mock接口返回的数据
Find a file:导入文件,修改服务端返回的数据

  1. 右键单击某请求->save->Response->Response Body,将服务端返回的数据保存到本地,可以修改服务端返回的数据。
    
  2. 把对应的web session面板中的url请求拖到右边(或者直接点击Add rules进行编辑URL),若是EXACT全字匹配(下图是正则匹配),则直接导入上一步保存的文件。保存后,重新请求,就会刷新使用最新代码。![在这里插入图片描述](https://img-blog.csdnimg.cn/20190509130858554.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xhbmdoYWlsb3ZlXzIwMDg=,size_16,color_FFFFFF,t_70)
    

状态码
有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:

1xx:指示信息–表示请求已接收,继续处理

2xx:成功–表示请求已被成功接收、理解、接受

3xx:重定向–要完成请求必须进行更进一步的操作

4xx:客户端错误–请求有语法错误或请求无法实现

5xx:服务器端错误–服务器未能实现合法的请求

常见状态码
在这里插入图片描述

正则匹配
不仅是单个url,Fiddler支持多种url匹配的方式:

  1. 字符匹配
    

如 example可以匹配 http://www.example.com和http?/example.com.cn

  1. 完全匹配
    

前缀为“EXACT:”表示完全匹配(大小写敏感)

  1. 正则表达式匹配
    

前缀为“REGEX:”表示使用正则表达式匹配:

.+ 匹配一个或多个字符,如regex:.+jpg 包含有jpg字符串且以jpg字符串结尾的,即可匹配

.* 匹配0个或多个字符,如regex:.+.jpg.*包含有.jpg字符串即可匹配

^ 匹配字符串开始位置

$ 匹配字符串结束位置

如regex:.+.(jpg|gif|bmp)$包含以jpg或gif或bmp字符串结尾的,即可匹配

5)前缀为“REGEX:(?insx)”表示匹配方式其中:

i表示不区分大小写;

n表示指定的唯一有效的捕获是显式命名或编号的形式;

s表示单行模式;

x表示空格说明的;

如:regex:(?insx).*.(css|js|php)$ 表示匹配所有以css,js,php结尾的请求url

regex:(?inx)./feed/v3/nd1feed?.$

低速模拟
Fiddler可以通过延迟发送数据或者接收数据的时间,来限制网络的下载速度和上传速度,从而模拟限速环境。延迟时间(毫秒)=1000/下载速度。例如,我们要模拟50kb/s的网络速度,需要延迟的时间为200毫秒。

Fiddler Rules选项卡下,勾选Rules-> Performance-> Simulate Modern Speeds

四、请求发射器Composer

两种编辑模式构建请求: Parsed模式(最常用)和Raw模式。

Parsed
把Request分为三个部分:Request line,Request Headers,Request Body。很容易创建一个Request。

输入请求的url之后executed即可,也可以修改相应的头信息(如添加常用的accept, host, referrer, cookie,cache-control等头部)后execute.

Raw
使用HTTP头部信息构建http请求。与上类似。

需要你一行一行手动写一个Request。

举例:POST请求https://xxxx.xxx.com/xxxxxx/xxxx/xx/login?XXX。如下图所示。
在这里插入图片描述

五、过滤器Filter

过滤规则,如下图所示。

  1. host和zone过滤。可以过滤只显示intranet或则internet的HTTP请求
    

也可以选择特定域名的HTTP请求

  1. client process:可以捕获指定进程的请求。
    

这对于调试单个应用的请求很有帮助。
在这里插入图片描述

Fiddler常见问题
查看Post参数中文乱码

解决方法:

1.win+R

2.打开注册表编辑器:输入regedit +回车+是

3.HKEY_CURRENT_USER\Software\Microsoft\Fiddler2

4.右键新建,选字符串值,加上HeaderEncoding,然后值输入 GBK(建议设置为UTF-8)

注意: HeaderEncoding建议设置为UTF-8,因为一般文件的字符编码格式习惯上采用UTF-8格式,而如果此处为GBK,当文件(如此例中.html为UTF-8格式的字符编码)格式不是GBK时,容易在下图的红框处出现乱码。故而,建议将其设置为UTF-8格式。
在这里插入图片描述

Response乱码

如果Response中的HTML是乱码, 这是因为HTML被压缩了, 我们可以通过两种方法去解压缩。

  1. 点击Response Raw上方的"Response is encoded any may need to be decoded before inspection. click here to transform"

  2. 选中工具栏中的"Decode"。这样会自动解压缩.

在这里插入图片描述

发布了77 篇原创文章 · 获赞 55 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/langhailove_2008/article/details/90023074