Fiddler_The_kindness的博客-程序员宅基地

技术标签: 测试工具  接口测试  

1. Fiddler简介

1.1 简介

Fiddler是位于客户端和服务器之间的代理,也是目前最常用的抓包工具之一。它能够记录客户端和服务器之间的所有请求,可以针对特定的请求,分析请求数据,设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。

1.2 功能

  1. 能够监听http/https的流量,可以截获从浏览器或者客户端软件向服务器发送的http/https请求;
  2. 对截获之后的请求,我们还能够查看请求中的内容;
  3. 伪造请求。不仅可以伪造客户端的请求,还能够伪造服务器的响应。——该功能能够方便我们进行前后端的调试。
  4. 测试网站的性能
  5. 解密https的外部会话。因为https本身是一种加密的协议,通过fiddler我们可以进行解密操作;
  6. 提供第三方扩展插件,满足更多需求。

1.3 Fiddler工作原理

在这里插入图片描述

2. Fiddler下载安装

下载:打开官网
安装:
汉化:

3. Fiddler界面介绍在这里插入图片描述

Fiddler界面从上到下分为:菜单栏、工具栏、会话列表、功能标签、命令行,状态栏六大板块

file capturing = F12 = 左下角capturing

4. 菜单栏

4.1 File菜单

1、Capture Traffic:可以控制是否把Fiddler注册为系统代理。

2、New Viewer:打开一个新的fiddler窗口

3、Load Archive:用于重新加载之前捕获的以SAZ文件格式保存的数据包。

4、Save:支持以多种方式把数据包保存到文件中。

5、Import Sessions…:支持导入从其他工具捕获的数据包,也支持导入以其他格式存储的数据包。

6、Export Sessions…:把Fiddler捕捉到的回话以多种文件格式保存。

7、Exit:取消把Fiddler注册为系统代理,并关闭Fiddler

4.2 Edit菜单

1、Copy:复制会话。

2、Remove:删除会话。

3、Select All:选择所有会话。

4、Undelete:撤销删除会话。

5、Paste as Session把剪贴板上的内容粘贴成一个或多个模拟的会话。

6、Mark:选择一种颜色标记选中会话。

7、Unlock for Editing 解锁会话。

8、Find Session…打开Find Session窗口,搜索捕获到的数据包。

4.3 Rules菜单

1、Hide Image Request:隐藏图片回话。

2、Hide CONNECTS:隐藏连接通道回话。

3、Automatic Breakpoints:自动在[请求前]或[响应后]设置断点。Ignore Image触发器控制这些断点是否作用于图片请求。

4、Customize Rules…:打开Fiddler脚本编辑窗口。

5、Require Proxy Authentication:,要求客户端安装证书。该规则可以用于测试HTTP客户端,确保所有未提交Proxy-Authorization请求头的请求会返回HTTP/407响应码。

6、Apply GZIP Encoding:只要请求包含具有gzip标识的Accept-Encoding请求头,就会对所有响应使用GZIP HTTP进行压缩(图片请求除外)。

7、Remove All Encoding:删除所有请求和响应的HTTP内容编码和传输编码

8、Hide 304s:隐藏响应为HTTP/304 Not Modified状态的所有回话。

9、Request Japanese Content:选项会把所有请求的Accept-Encoding请求头设置或替换为ja标识,表示客户端希望响应以日语形式发送。

10、User-Agents:把所有请求的User-Agent请求头设置或替换成指定值。

11、performance:模拟弱网测试速度。

4.4 Tools菜单

1、Options…:打开Fiddler选项窗口。

2、WinINET Options…打开IE的Internet属性窗口

3、Clear WinINET Cache:清空IE和其他应用中所使用的WinINET缓存中的所有文件。

4、Clear WinINET Cookies:清空IE和其他应用中所发送的WinINET Cookie

5、TextWizard…:选项会启动TextWizard窗口,对文本进行编码和解码。

6、Compare Session:比较回话。

7、Reset Script:重置Fiddler脚本。

8、Sandbox:打开http://webdbg.com/sandbox/

9、View IE Cache:打开IE缓存窗口。

4.5 View菜单

1、Show Toolbar:控制Fiddler工具栏是否可见

2、DefaultLayout、Stacked Layout、Wide Layout三种界面布局

3、Minimize to Tray:最小化Fiddler到系统托盘(快捷键:CTRL+M)

4、Squish SessionList:控制回话列表是否水平收缩。

5、AutoScroll Sessionlist:添加新的回话时,自动滚动到回话列表底部

5. 工具栏

在这里插入图片描述

  1. 备注功能
  2. 重新发送请求,快捷键:R键。
  3. 删除请求
  4. 当有请求前断点时,点击去发送请求。
  5. 流模式。(默认是缓冲模式)
  6. 解码
  7. 保持回话的数量。
  8. 选择你想要抓包或者监听的程序
  9. 查找
  10. 保存所有会话,文件名以.saz为扩展名
  11. 截图
  12. 计时器
  13. 快捷的打开IE浏览器在这里插入图片描述
  14. 清除IE缓存
  15. 文本的编码解码工具
  16. 分离面板
  17. MSDN查询
  18. 本机的信息

6. 会话列表

在这里插入图片描述

  1. 请求的ID编号
  2. http响应状态码
  3. 会话使用的协议
  4. 请求发送到的服务器主机名
  5. 数据包在服务器中的路径和文件
  6. 响应body的字节数
  7. 响应头信息Cache-Control的值
  8. 响应头信息Content-Type的值
  9. 起请求的本地windows进程
  10. 注释
  11. 自定义备注

7. 功能页签

7.1 Statistics页签

通过该页签,用户可以通过选择多个会话来得到这几个会话的总的信息统计,比如多个请求传输的字节数。访问页面时选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出那些请求耗时最多,从而对页面的访问进行速度性能优化。

7.2 inspectors页签(常用页签)

它提供headers、TextView、hexview,Raw等多种方式查看一条http请求的请求和响应,它分为上下两部分:上部分为请求展示,下部分为响应展示。

7.3 AutoResponse页签(常用页签)

它可以抓取在线页面保存到本地进行测试,大大减少了在线调试的困难,可以让我们修改服务器端返回的数据,例如让返回都是404的数据包读取本地文件作为返回内容。

7.4 composer页签(常用页签)

支持手动构建和发送HTTP,HTTPS和FTP请求,我们还可以从回话列表中拖曳回话,把它放到composer选项卡中,当我们点击Execute按钮时则把请求发送到服务器端。

7.5 FiddlerScripts页签

打开Fiddler脚本编辑。
log页签:
打印日志

7.6 Filters页签(常用页签)

过滤器可以对左侧的数据流列表进行过滤,我们可以标记、修改或隐藏某些特征的数据流。

7.7 Timeline页签

时间轴,也称为Fiddler的瀑布图,展示网络请求时间的功能。每个网络请求都会经历域名解析、建立连接、发送请求、接受数据等阶段。把多个请求以时间作为X轴,用图表的形式展现出来,就形成了瀑布图。在左侧会话窗口点击一个或多个回话,Timeline 便会显示指定内容从服务端传输到客户端的时间。

7.8 命令行

help 打开官方的使用页面介绍,所有的命令都会列出来。

cls 清屏 (Ctrl+x 也可以清屏)

select 选择所有相应类型的回话(如select image或select css)。

sometext 查找字符串并高亮显示查找到的会话。

size 选择请求响应大小小于size字节的会话。

=status/=method/@host 查找状态、方法、主机相对应的会话

1uit 退出fiddler

bpafter xxx 中断URL包含指定字符的全部回话响应

bps xxx 中断HTTP响应状态为指定字符的全部回话响应。

bpv xxx 中断指定请求方式的全部回话响应

bpm xxx 中断指定请求方式的全部回话响应。等同于bpv xxx

bpu xxx: 与bpafter类似。

8. 状态栏

在这里插入图片描述
1、 显示的Fiddler是否处于捕捉状态(开启/关闭状态),可以点击该区域切换

2、显示当前捕捉哪些进程:
All Processes 捕获所有进程的请求
Web Browsers 捕获 Web 浏览器的请求,应该特指 IE
Non-Browser 捕获非 Web 浏览器的请求
Hide All 隐藏所有请求

3、显示当前断点设置状态,通过鼠标点击切换。有三种:

不设置断点

所有请求在断点处被暂停

所有响应在断点处被暂停

4、显示当前共捕获了多少回话(如:300,表示共捕获了300个会话,如:10/300,表示当前选择10个会话,共捕获300个会话)。

5、第五区块,描述当前状态。

如果是刚打开Fiddler,会显示什么时间加载了CustomRules.js;如果选择了一个会话,会显示该会话的URL;如果在命令行输入一个命令,就会显示命令相关信息。

9. web抓包

我们双击打开软件,进入到如下的一个界面,然后点击某一个请求,你会发现请求的内容是一堆明显不对的文字,然后该请求的左边是一个锁的样式,联想到https加密,你会发现原因可能是没有配置Fiddler。然后解释一下右边的默认返回内容,第一句是**“这是一个CONNECT隧道,加密的HTTPS流量通过该隧道流动。”**,就证实了我们的猜测,果然是因为https加密的原因。在这里插入图片描述
那么如何配置FIddler来解析这些加密的请求呢?
**方法一:**是查官网的安装文档,

**方法二:**看提示,软件公司还是很人性化的在返回内容里面提示了需要在哪里设置,就是第二行那一句:enable the Tools > Options > HTTPS > Decrypt HTTPS traffic option.

我们按照提示来进行设置,先在左上角的工具栏里面找到Tools,然后依次选择Options、HTTPS ,然后勾选Decrypt HTTPS traffic选项,勾选后安装证书。
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_61504888/article/details/123670510

智能推荐

[matlab]vl_nnpool-程序员宅基地

%VL_NNPOOL CNN poolinng.% Y = VL_NNPOOL(X, POOL) applies the pooling operator to all% channels of the data X using a square filter of size POOL. X is a% SINGLE array of dimension H x W x D x N

洛谷 P1757【通天之分组背包】_p1757 通天之分组背包-程序员宅基地

题目链接思路:很简单的分组背包裸题,在做过AreYouBusy(pre blog)之后已经可以一遍过。每组选一,即AtMostOne问题。一组一组平推,每次用rec数组记录,属于做过一遍就不会忘的方法。注意转移方程不要写错,dp[ j ] 代表可能已经使用了本组中某物品之后得到的最大值,rec[ j - w[i] ] + v[ i ] 代表是第一次选本组中的物品。代码:​//16m..._p1757 通天之分组背包

使用sort函数排序结构体或类_sort函数比较结构体-程序员宅基地

我们假设需要对一个结构体进行排序,例如:struct candy{ int v; int w;} candies[110];需要对此结构体以v/w的大小进行排序;c++的STL库函数给我们提供了一个排序函数sort;但要使用sort函数进行排序,我们有以下两种方法。一 .重载比较运算符我们可以对比较运算符进行重载:struct candy{ int v; int w; bool operator<(const candy& c)..._sort函数比较结构体

Inside the C++ Object Model 深度探索对象模型 5-Construction 6-Runtime 7-Object-程序员宅基地

5构造,解构,拷贝语意学 Semantics of Construction, Destruction, Copy纯虚拟函数的存在 Presence of Pure VF>pure virtual function可以被定义和调用invoke: 只能被静态调用statically, 不能经由虚拟机调用; Ex. inline void Abstract_base::interface()

yii2 bootstrap.php,yii2 初始化的bootstrap过程 -引导-程序员宅基地

bootstrap是指应用开始解析并处理请求之前,一个预先准备环境的阶段,也就是一个前期的初始化 过程,也就是说,在执行helloworld之前,需要执行的代码部分。启动这个过程会在两个地方,一个是index.php的入口文件,一个是application的bootstrap过程。1.index.php入口文件: 大致为composer文件自动加载器,yii的文件自动加载器,已经配置文件的合并,环..._unknown bootstrapping component id: gii

开源免费录屏和直播软件OBS Studio教程(01)_obs自动配置向导怎么设置-程序员宅基地

OBS Studio是目前比较主流的免费开源录屏和直播软件,它提供了丰富的功能特性,可以媲美一些受欢迎的同类商业软件。如果你正在考虑使用低成本方案来录屏或进行直播,那么这将是一个不错的选择。本教程主要讲解如何在Windows系统上使用OBS Studio来进行录屏。安装进入OSB Studio官网,https://obsproject.com,如下图所示,点击Windows蓝色按钮..._obs自动配置向导怎么设置

随便推点

springSecurityFilterChain加载问题-程序员宅基地

九月 25, 2018 4:35:04 下午 org.apache.catalina.core.StandardContext listenerStart严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoad...

SpringBoot 区分 生产、测试、开发 不同环境不同配置_配置文件中如何区分开发数据库,测试数据库、生产数据库-程序员宅基地

SpringBoot 区分 开发、测试、生产 不同配置环境:生产(prod)测试(test)开发(dev)生产、测试、开发 数据库不同 启动时指定环境 选择对应的配置文件( jar包 main方法启动)配置文件:默认配置文件(选择环境、设置公共配置)开发环境(开发环境配置)测试环境(测试环境的配置信息)正式环境配置(正式配置信息)启动服务,使用不同配置(linu..._配置文件中如何区分开发数据库,测试数据库、生产数据库

VUE2.0 观察者模式、父子组件调用_vue2.0 父子组件调用方法-程序员宅基地

一、观察者模式事件发布 : this.$root.eventHub.$emit(事件名称,传递的参数); 订阅事件 : this.$root.eventHub.$on(事件名称,(response)=>{ }) 取消订阅: this.$root.eventHub.$off(事件名称)二、父子组件的调用<!--子组件--><template> ..._vue2.0 父子组件调用方法

gz结尾文件解压_gz结尾的文件-程序员宅基地

gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。-d, --decompress解压缩的意思解压命令gzip -d error.log-20201212.gz或者gunzip -derror.log-20201204.gz查看帮助gzip-hLinux下操作.tar.gz文件1.压缩.tar.gz文件  命令:tar-zcvf压缩文件名.tar.gz被压缩文件名-c、 --创建新建存档-x、 --提取,--从存档中提..._gz结尾的文件

【ubuntu】在ubuntu上安装QT_ubuntu安装qt-程序员宅基地

(1)在64位的ubuntu中安装QT(1.1)下载QT 如:qt-opensource-linux-x64-5.10.1.runQT网址1QT网址2(1.2)安装QTchmod +x qt-opensource-linux-x64-5.10.1.run./qt-opensource-linux-x64-5.10.1.run(1.3)安装的时候如果空间足够大可以把选项..._ubuntu安装qt

jackson工具包下载_jackson插件下载-程序员宅基地

jackson工具包链接:https://pan.baidu.com/s/1c8OEQ8X5V_jfQ_M4Tzr4kA提取码:echo_jackson插件下载