全网最全fiddler使用教程和fiddler如何抓包(fiddler手机抓包)-笔者亲测

一、前言

抓包工具有很多,比如常用的抓包工具Httpwatch,通用的强大的抓包工具Wireshark.为什么使用fiddler?原因如下:
1.Wireshark是通用的抓包工具,但是比较庞大,对于只需要抓取http请求的应用来说,似乎有些大材小用。
2.Httpwatch也是比较常用的http抓包工具,但是只支持IE和firefox浏览器(其他浏览器可能会有相应的插件),对于想要调试chrome浏览器的http请求,似乎稍显无力
而Fiddler是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。那么想要精通抓包,首先必须对协议比较了解,所以下面我们首先了解一下协议。

二、HTTP协议

1、HTTP协议
支持客户/服务器模式。简单快速,无连接,无状态。
HTTP协议:默认端口:80
HTTPS=HTTP协议+SSL安全传输协议:默认端口443
2、HTTP协议请求详解
请求行,请求头,空一行,请求正文
Accept 指定客户端能够接收的内容类型
Accept-Charset 浏览器可以接受的字符编码集。
Accept-Encoding 指定浏览器可以支持的web服务器返回内容压缩编码类型。
Accept-Language 浏览器可接受的语言
Cookie HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。
Content-Length 请求的内容长度
Content-Type 请求的与实体对应的MIME信息
Date 请求发送的日期和时间
Host 指定请求的服务器的域名和端口号
Referer 先前网页的地址,当前请求网页紧随其后,即来路
User-Agent 发出请求的用户信息
3、HTTP协议响应详解
响应行,响应头,空一行,响应正文
响应头的信息和请求头很类似,这里不在累述!

三、Fiddler简介和工作原理

1.Fiddler简介
Fiddler是位于客户端和服务器端的HTTP代理。
目前最常用的http抓包工具之一。功能非常强大,是web调试的利器。
工作中常用场景:接口调试、接口测试、线上环境调试、判断前后端Bug、mock测试、弱网测试。

2.Fiddler下载和安装
Fiddler官网下载地址:https://www.telerik.com/fiddler
Fiddle证书生成器下载地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
Fiddler安装注意事项:不要安装在有中文和特殊字符的目录
安装注意事项:不要安装在有中文和特殊字符的目录

3.Fiddler的工作原理:
Fiddler是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,

关掉Fiddler、谷歌和IE浏览器的代理服务器会自动取消。如果Fiddler非正常退出,因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动Fiddler。

四、Fiddler六大块详解

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

(2) Fiddler功能页签
Statistics页签:通过该页签,用户可以通过选择多个会话来得到这几个会话的总的信息统计,比如多个请求传输的字节数。访问页面时选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行速度性能优化。
inspectors页签:它提供headers、textview、hexview,Raw等多种方式查看一条http请求的请求和响应,它分为上下两部分:上部分为请求展示,下部分为响应展示。
AutoResponse页签:它可以抓取在线页面保存到本地进行调试,大大减少了在线调试的困难,可以让我们修改服务器端返回的数据,例如让返回都是404的数据包读取本地文件作为返回内容。
composer页签:支持手动构建和发送HTTP,HTTPS和FTP请求,我们还可以从回话列表中拖曳回话,把它放到composer选项卡中,当我们点击Execute按钮时则把请求发送到服务器端。
FiddlerScripts页签:打开Fiddler脚本编辑。
log页签:打印日志
Filters页签:过滤器可以对左侧的数据流列表进行过滤,我们可以标记、修改或隐藏某些特征的数据流。
Timeline页签:时间轴,也称为Fiddler的瀑布图,展示网络请求时间的功能。每个网络请求都会经历域名解析、建立连接、发送请求、接受数据等阶段。把多个请求以时间作为X轴,用图表的形式展现出来,就形成了瀑布图。在左侧会话窗口点击一个或多个回话,Timeline 便会显示指定内容从服务端传输到客户端的时间。

(3)菜单栏
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。
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窗口,搜索捕获到的数据包。
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:模拟弱网测试速度。
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缓存窗口。
View菜单
1、Show Toolbar:控制Fiddler工具栏是否可见
2、Default Layout、Stacked Layout、Wide Layout三种界面布局
3、Minimize to Tray:最小化Fiddler到系统托盘(快捷键:CTRL+M )
4、Squish Session List:控制回话列表是否水平收缩。
5、AutoScroll Session list:添加新的回话时,自动滚动到回话列表底部

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

(5)状态栏详解:
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;如果在命令行输入一个命令,就会显示命令相关信息。

(6)Fiddler命令行可以输入命令操作回话列表,常见命令有:
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类似。

五、Fiddler过滤器

选择Filters页签,勾选use Filters使用过滤器。
Fiddler过滤指定域名
1.第二个下拉框[-No Host Filter-]选择[Show Only The Following Hosts]只显示过滤的域名。
2.如只监控百度,在下面的输入框里填上:http://www.baidu.com

Fiddler过滤指定路径
1.勾选 Request Headers 中的[show only if URL contains]。
2.勾选Request Headers中的【Show only if URL contains】输入正则:REGEX:(?insx).*\.?http://baidu.com/home.*
只显示路径为:http://baidu.com/Home 的数据包。

Fiddler过滤指定文件格式
1.勾选Request Headers中的【Hide if url contains】过滤项,
2.在后面输入:REGEX:(?insx)/[^\?/]*\.(css|ico|jpg|png|gif|bmp|wav|js)(\?.*)?$

六、Fiddler 对于WEB项目的抓包和改包项目实战

打开Fidder会自动抓包,如果想要改包的话则在AutoResponder页签,如下图:

七、Fiddler弱网测试

Fiddler应用-弱网测试
1、Rules->Customize Rules打开Fiddle脚本编辑器(第二种也可以点击页签:FiddlerScript)。找到如下代码:
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded. 上行每发送1KB延迟300ms
oSession["request-trickle-delay"] = "300";
// Delay receives by 150ms per KB downloaded. 下行每接收1KB延迟150ms
oSession["response-trickle-delay"] = "150";
}
1kByte/s=8kbit/s(一般简写为1kB/s=8kb/s)。
  上传带宽=(1 * 8/1000) /0.300 ≈ 0.027Mbps
  下载带宽=(1 * 8/1000) /0.150 ≈ 0.053Mbps
修改其中的300ms和150ms用于设置上行和下行的延迟速度。并重启Fiddler使设置生效。
比如你要模拟上传速度100KBps的网络,那上传延迟就是1KB/100KBps=0.01s=10ms,就改成10。
网络取值的算法就是 1000/速度 = 需要delay的时间(毫秒),比如50kb/s 需要delay200毫秒来接收数据。

2、Rules->Performance->勾上Simulate Modem Speeds开启模拟调制解调器速度。
3、通过http://www.speedtest.cn/在线测试网速,看是否生效。访问浏览器查看加载速度。

八、Fiddler抓取https协议的数据报文和移动端抓包测试

1、Fiddler设置:菜单栏中选择tools->option,做如下两个设置:

2.Fiddler应用-抓取基于https协议的数据报文。
1、清理环境(首次安装Fiddler不需要清理)
(1)卸载Fiddler软件以及根证书生成器Fiddler2 CertMaker。
(2)清除C:\Users\Administrator\AppData\Roaming\Microsoft\Crypto\RSA目录下所有的RSA算法文件,此算法文件和非对称公钥密钥加密相关。
(3)清除电脑上的根证书,WIN+R快捷键,输入: certmgr.msc, 然后回车,查找fiddler证书,然后删除。
(4)清除浏览器上的证书文件 ,以谷歌浏览器为例说明,在浏览器上输入:chrome://settings/,进入[高级]->[管理证书],有"受信任的根证书颁发机构"列表。此处需要仔细查找带有DO_NOT_TRUST_FiddlerRoot的字样,并删除。

2、安装并配置Fiddler抓取Https数据报文。
(1)下载并安装fiddler,官网下载地址:https://www.telerik.com/download/fiddler
(2)下载并安装Fiddler证书生成器,官网下载地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
(3)打开Fiddler,点击菜单栏中的Tools—>Options,选择HTTPS页签。勾选Decrypt HTTPS CONNECTs(解密https连接),Fiddler证书生成器会自动判断本机是否安装Fiddler证书,没有则弹出如下证书安装页面。点击”Yes”按钮,在新弹出的窗口中再点击”确定”后则Fiddler证书安装完成。接下来Fiddler就可以抓取Https的数据报文。

3.Fiddler应用-抓取基于https协议的手机报文。
1、Fiddler抓取手机端的https协议数据报文。
(1)保持android手机和电脑在同一网段。如连接同一无线。
(2)打开android手机的“设置”->“WLAN”,找到你要连接的无线网络并点击,弹出网络设置对话框,在“代理”处选择“手动”,在“主机名”输入框后面输入127.0.0.1,在“端口”输入框后面输入8888,然后点击“保存”按钮。
(3)启动android设备中的浏览器访问百度首页或打开被测App,在fiddler中可以看到抓取到的数据报文了。

 总结

如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面

  2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/295718.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring整合MyBatis项目代码示例

文章目录 Spring整合MyBatis项目代码示例1、创建如下结构的项目Spring_MyBatis2、在pom.xml文件中添加以下依赖并刷新maven3、在resources文件夹下添加spring等配置文件(applicationContext.xml,db.properties,log4j.properties)4…

x-cmd pkg | procs - ps 命令的现代化替代品

目录 简介首次用户功能特点类似工具进一步阅读 简介 procs 是用 Rust 编写的 ps 替代品,用于显示有关任务进程的信息 首次用户 使用 x procs 即可自动下载并使用 在终端运行 eval "$(curl https://get.x-cmd.com)" 即可完成 x 命令安装, 详情参考 x-cmd…

基于闪电搜索算法优化的Elman神经网络数据预测 - 附代码

基于闪电搜索算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于闪电搜索算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于闪电搜索优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&…

Zernike多项式法生成相位理论推导及图像引导实现原理

目录 引言 波前传感器 ​编辑 关于相位计算问题补充 关于结构图的修正 光束质量评价指标 Zernike多项式 ​编辑Zernike多项式法生成相位 光强分布求波前相位-GS 更快的迭代方法SPGD 基于Zernike模式的SPGD 引言 我们还是先从第一篇文献开始理解展开今天分享的一些重…

Linux-端口、nmap命令、netstat命令

端口是设备与外界通讯交流的出入口,可分为物理端口和虚拟端口 物理端口实际存在可以看见,而虚拟端口是指计算机内部的端口,是不可见的,用来操作系统和外部交互使用。 IP地址不能锁定程序,所以可以通过端口&#xff0…

圣诞节来临,如何用海外云手机给亚马逊店铺引流?

马上就要到圣诞节了,这是一年中冲刺销售量的最后一个好机会,对所有亚马逊卖家都十分重要。而无论是亚马逊新手卖家还是老卖家,要想在激烈的竞争中取胜,仅仅靠产品本身是不现实的,通过测评和社媒引流获取更多曝光和流量…

提升效率必备:用关键词替换法重命名文件夹技巧

在日常生活和工作中,经常要处理大量的文件夹,进行归类、整理和重命名。但是手动一个个重命名文件夹既费时又费力。为了提高效率,可以采用关键词替换法来批量重命名文件夹。现在讲解云炫文件管理器如何用关键词替换命名文件夹的具体步骤。 首先…

【Linux进程】 进程的理解

目录 前言 1. 系统管理 2. 进程 2.1 概念 2.2 进程的调度 2.3 描述进程-PBC 3. 查看进程 4. 通过系统调用获取进程标示符 前言 在计算机科学领域,进程是一种重要的概念,在日常学习中也经常遇到进程这个概念,那么进程到底是什么&#x…

Keras实现seq2seq

概述 Seq2Seq是一种深度学习模型,主要用于处理序列到序列的转换问题,如机器翻译、对话生成等。该模型主要由两个循环神经网络(RNN)组成,一个是编码器(Encoder),另一个是解码器…

使用mysql查询当天、近一周、近一个月及近一年的数据以及各种报表查询sql

1.mysql查询当天的数据 1 select * from table where to_days(时间字段) to_days(now()); 2.mysql查询昨天的数据 1 select * from table where to_days(now( ) ) - to_days( 时间字段名) < 1 3.mysql查询近一个月的数据 1 SELECT * FROM table WHERE date(时间字段) …

OR-3150:IGBT驱动光耦,可替代HCPL3150

具有MOSFET高输入阻抗和GTR低导通压降特性提供隔离反馈 高隔离电压 1.5A输出电流 工业温度范围&#xff1a;–40C 至 110C 宽工作 VCC 范围 特征 VCM 1500V 时最小共模抑制 &#xff08;CMR&#xff09; 为 35 kV/μs 最大低电平输出电压 &#xff08;VOL&#xff09; 1.0…

杨中科 ASP.NETCore开发效率利器 HOT RELOAD

HOT RELOAD 1、困惑:修改了服务器端的代码&#xff0c;必须重新运行程序。 2、方法1: [启动 (不调试) ] 3、方法2: .NET 6开始的Hot Reload(热重载) 正常修改代码后 不重启&#xff0c;是无法看到新的数据展示在页面 修改 运行结果&#xff1a; 方式一&#xff1a;设置开始…

Android WiFi基础概览

Android WiFi 基础概览 1、WiFi协议2、Android WLAN 架构2.1 应用框架2.2 Wi-Fi 服务2.3 Wi-Fi HAL 3、相关编译 android13-release 1、WiFi协议 Wi-Fi&#xff08;无线通信技术&#xff09;_百度百科 2.4GHz 频段支持以下标准&#xff08;802.11b/g/n/ax&#xff09;&#xff…

CommonJS 和 ES6 Module:一场模块规范的对决(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

质量管控之Bug管理 5大注意事项

Bug管理对于提高软件质量、用户满意度、开发效率等都具有重要的意义。它是确保软件质量和用户体验的关键环节。而Bug管理不善&#xff0c;可能会导致软件质量下降、项目进度延误、用户满意度降低、等不良影响。 因此&#xff0c;正确有效地进行Bug管理非常重要&#xff0c;而进…

Maven各版本的官方下载地址

2023年1月3日&#xff0c;周三上午 官方下载地址&#xff1a; https://dlcdn.apache.org/maven/

oracle语法学习

oracle语法学习 1.备份表 create table bd_psndoc_temp as select * from bd_psndoc2.还原表 drop table bd_psndoc; create table bd_psndoc as select * from bd_psndoc_temp3.查询表的前5条记录 select * from bd_psndoc_temp where rownum<54.从一个表中复制所有的列…

为什么有人说PMP是水证,它的含金量到底怎么样?

在我国大陆&#xff0c;有好多证书被商业化得太重了&#xff0c;甚至演变成了个人或一些公司摇钱的工具。所以有些证书受人吹捧它崛起的快&#xff0c;但是活不长&#xff0c;甚至“夭折”&#xff0c;比如以前微软系列的证书&#xff1b; 而PMP认证从国外引进大陆这么多年了&…

为什么原生广告成为APP广告变现的重要选择?

APP广告变现可以采用的广告形式有多种选择&#xff1a;激励视屏、插屏广告、原生广告。开发者可以在不影响用户体验的情况下制定合适的变现策略。 一、什么是原生广告&#xff1f; 原生广告不同于以往传统广告的效果&#xff0c;用户在观看时就像内容里的某个吸睛片段&#x…

onxxruntime使用cuda以及tensorrt进行加速

1、版本匹配 版本需要匹配&#xff0c;不然运行会报错 2、onnxruntime之tensorrt加速 方式一&#xff1a; OrtTensorRTProviderOptions trt_options{}; trt_options.trt_max_workspace_size 2147483648; trt_options.trt_max_partition_iterations 10; trt_options.trt_m…