一个可以手写原型链的男人

抓包工具:Fiddler的实用功能

抓包工具:Fiddler的实用功能之一 断点

命令介绍:bpu在请求开始时中断,bpafter在响应到达时中断,bps在特定http状态码时中断,bpv/bpm在特定请求method时中断。

提示:命令输入区域输入help,回车执行会打开一页面详细介绍fiddler的所有命令。

bpu

Create a request breakpoint for URIs containing the specified string. Setting this command will clear any previous value for the command; calling it with no parameter will disable the breakpoint.

bpu /myservice.asmx
bpu        <-- Call with no parameter to clear

bpafter

Break any response where the RequestURI contains the specified string

bpafter /favicon.ico 
bpafter        <-- Call with no parameter to clear

bps

Break any response where the status code matches

bps 404
bps        <-- Call with no parameter to clear

bpv or bpm

Create a request breakpoint for the specified HTTP method. Setting this command will clear any previous value for the command; calling it with no parameter will disable the breakpoint.

bpv POST
bpv        <-- Call with no parameter to clear

抓包工具:Fiddler的实用功能之二 AutoResponder

AutoResponder:

之前介绍过如何手动修改请求的response,而用AutoResponder面板则更方便,可以启用建立好的规则,以后每次匹配规则时,都会返回指定的响应内容。

前端开发的日常工作中,发现服务器上某个css/javascript文件有问题,需要修改。利用Fiddler的可以修改HTTP数据的特性,就能用本地文件替换线上css/javascript文件,基于生产环境修改并验证,确认后再发布。

打开Fiddler右侧的“AutoResponder面板”,拖动左侧会话到“AutoResponder面板”中。

勾选“Enable rules”和“Unmatched requests passthrough”。Rule Editor添加本地文件响应网络请求。

AutoResponder功能是Fiddler最实用的功能之一,Rule可以自由地设定,可以使用搜索(默认)、精确匹配(EXACT)、正则表达式匹配(REGEX)。

《抓包工具:Fiddler的实用功能》

抓包工具:Fiddler的实用功能之三 远程连接Fiddler

如果在MAC或Linux下想使用Fiddler,可使用Fiddler的远程连接功能。

原理:在另一台WINDOWS 物理机(或者安装WINDOWS的虚拟机)上安装Fiddler,Fiddler开放远程代理连接功能,然后在Mac或Linux上设置系统代理IP和端口为此安装Fiddler机器的IP和端口。

1、在Fiddler中打开菜单:Tools–>Fiddler options。勾选上“Allow remote computers to connect”

2、接着给 Mac 配置 HTTP 代理,IP 填 Windows 的 IP,端口就是上图中 Fiddler 监听的端口。

《抓包工具:Fiddler的实用功能》

抓包工具:Fiddler的实用功能之四 移动端如何抓包

PC端设置

  1. 打开Fiddler,然后点击菜单栏的Tools > Fiddler Options,打开“Fiddler Options”对话框。
  2. 在打开的对话框中切换到“Connections”选项卡。
  3. 在“Connections”选项卡中可以看到“Fiddler listens on port:”,后面的输入框中有8888。可以需要根据你自己的要求修改为任意一个合法的端口。

手机端设置

 

  1. android 手机进行wifi连接,确保手机和PC在一个网络中(手机连接PC发射出去的wifi热点)。
  2. 修改该wifi网络,勾选show advanced options
  3. Proxy选择Manual
  4. Proxy host name 填写PC 端的IP
  5. Proxy port 端口填写 8888 ,这个是Fiddler 设置的端口,通过此端口进行数据的拦截抓包。

 

抓包工具:Fiddler的实用功能之五 过滤hostname

在抓包的时候,经常是过来的请求有很多,密密麻麻的都是,我们需要在里面去挑选自己关注的请求,Fiddler有一个过滤的功能可以帮助我们,很轻松的过滤出到我们想要的请求接口:

  1. 打开fiddler,找到Filters选项卡并点击打开;
  2. 打开后,我们选择启用。勾选Use Filters ;
  3. 我们可以看到下面的Host模式,我们选择Show the following Hosts,表示我们只在Fiddler上显示以下域名的数据请求;
  4. 然后我们在Hosts文本区域,输入我们需要显示的域名,用分号分割多个域名;
  5. 填好我们的域名后,我们点击Actions选项并选择Run Filterset Now.现在就已经设置好了;
  6. 以后抓包的时候,就之后显示知己所关心的接口了。

《抓包工具:Fiddler的实用功能》

抓包工具:Fiddler的实用功能之六 Fiddler模拟请求

在进行接口测试时,会模拟请求,发送不同的请求参数,返回不同的结果,怎么用Fiddler工具模拟请求?

  1. 打开Fiddler工具,在右侧点击“composer”的选项;
  2. 在parsed选项卡中进行根据http发送的请求进行选择;
  3. 添加测试的接口地址,以及选择http协议的版本;
  4. post请求->填写post请求的header和body;
  5. get请求->填写get请求的header;
  6. 最后点击 Execute,就可以发送请求,在左侧可以查看到发送的请求记录;
  7. 双击该请求,既可以查看详细的请求数据和返回结果;

《抓包工具:Fiddler的实用功能》

说明:

1、content-type,内容类型,用来指定不同格式的请求信息,就是在header中指定body中的数据格式。
2、Http Header里的Content-Type在这里介绍以下两种以及相关的实践应用,需要根据实际情况选择不同的Content-Type。:
application/x-www-form-urlencoded:数据被编码为名称/值对。这是标准的编码格式。
application/json : json格式的数据。

post请求的header是这样的:

User-Agent: Fiddler
Content-Type: application/x-www-form-urlencoded
Host: localhost
Content-Length: 34

那么在body里这样写:

city=“ZhengZhou”& name=”zwf”


如果要发送json格式的数据,则header这样写:

User-Agent: Fiddler
Content-Type: application/json
Host: localhost
Content-Length: 34

body中这样写:

{
    "city": "ZhengZhou",
    "name": "zwf"
}

Options选项卡

Inspect Session 请求执行后,Inspectors选项卡会被激活【自动打开】,可以查看请求结果;

Fix Content-Length header* 该选项控制Composer是否会自动添加或修改Content-Length请求头,表示请求体的大小;

Follow Redirects* 该选项控制Composer是否会自动使用响应的Location头,遵循HTTP/3xx重定向,如果选中该选项,Composer在失败之前最多会执行10次重定向;

Automatically Authenticate* 该选项控制composer是否会自动响应服务器的HTTP/401或HTTP/407认证需求;

Tear off button 该按钮会从主Fiddler窗口删除Composer,并把它作为独立的悬浮窗口打开,如果选中Inspect Session选项,该选项就非常有用,因为它支持同时查看Composer和Inspector选项卡;

抓包工具:Fiddler的实用功能之七 模拟弱网环境

《抓包工具:Fiddler的实用功能》

  1. 打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds
  2. Rules—>Cutomize Rules
  3. 在文件中搜索关键字,m_SimulateModem
  4. if (m_SimulateModem) {
     // Delay sends by 300ms per KB uploaded.
     oSession["request-trickle-delay"] = "300"; 
     // Delay receives by 150ms per KB downloaded.
     oSession["response-trickle-delay"] = "150"; 
     }
  • 首先来判断m_SimulateModem是否为true,也就是是否设置了弱网模式。
  • oSession[“request-trickle-delay”] = “300”; 注释的也很明白,Delay sends by 300ms per KB uploaded.上传1KB需要300ms,转化一下上传速度:1Kb/0.3s = 10/3(KB/s)
  • 如果你想设置上传的速度为50KB/s,你则需要设置Delay 时间为 20ms
  • 同样的方法,也可以限制上传的速度,调整oSession[“response-trickle-delay”]即可。

参考链接

QuickExec Reference

雨水的早晨的博客 – CSDN博客

点赞

发表评论