Fiddler报文分析-断点应用、模拟网络限速-HTTPS的 拦截
目录
一、报文分析
Statistics 请求性能数据
检查器(Inspectors)
自定义响应(AutoResponder)
Composer
Composer的功能就是用来创建HTTP Request然后发送请求。 允许自定义请求发送到服务器,即可以手动创建一个新的请求,也可在会话表中拖拽一个现有的请求。可以作为简单的接口测试功能。
Filter过滤器
过滤器,可以帮助我们过滤出需要监控的请求。比较常用。
主机过滤
进程过滤
请求头过滤
断点过滤
Response Status Code过滤
响应类型及响应大小过滤
响应头过滤
二、断点应用
全局断点
断点命令列表
三、模拟网络限速
为什么需要弱网测试
弱网情况下容易出现的问题
Fiddler弱网测试配置
四、HTTPS的拦截
HTTPS基础
Fiddler中配置HTTPS
一、报文分析
Statistics 请求性能数据
分析数据注解:
Request Count: 1#请求数, 该session总共发的请求数
Bytes Sent: 580 (headers:580; body:0)#发送的字节数
Bytes Received: 2,215 (headers:385; body:1,830)#接受到响应的字节数
ACTUAL PERFORMANCE# 实际度量的指标数据
--------------
ClientConnected: 23:22:29.356#客户端连接时间
ClientBeginRequest: 23:22:29.771#客户端发送请求的时间
GotRequestHeaders: 23:22:29.771#获取请求头文件的时间
ClientDoneRequest: 23:22:29.771#客户端完成请求的时间
Determine Gateway: 0ms#确定网关使用的时间
DNS Lookup: 0ms#查找DNS使用的时间
TCP/IP Connect: 0ms#TCP链接使用的时间
HTTPS Handshake: 0ms#HTTPS握手使用的时间
ServerConnected: 23:22:29.415#服务器连接发生的时间
FiddlerBeginRequest: 23:22:29.771#Fiddler开始请求的时间
ServerGotRequest: 23:22:29.771#服务器得到请求的时间
ServerBeginResponse: 23:22:30.030#服务器开始响应的时间
GotResponseHeaders: 23:22:30.030#获得响应头的时间
ServerDoneResponse: 23:22:30.030#服务器完成响应的时间
ClientBeginResponse: 23:22:30.030#客户端开始响应时间
ClientDoneResponse: 23:22:30.030#客户端完成响应时间
Overall Elapsed: 0:00:00.258#花费的总时间
RESPONSE BYTES (by Content-Type)#响应字数统计
--------------
image/jpeg: 1,830#图片数据共1830字节
~headers~: 385#响应头385字节
ESTIMATED WORLDWIDE PERFORMANCE#全球性能估计数据
--------------
The following are VERY rough estimates of download times when hitting servers based in Seattle.
#下面数据是基于西雅图服务器下载时间粗略估计数据
US West Coast (Modem - 6KB/sec)#美国西海岸 modem调制解调
RTT: 0.10s
Elapsed: 0.10s
Japan / Northern Europe (Modem)#日本/北欧
RTT: 0.15s
Elapsed: 0.15s
China (Modem)# 中国
RTT: 0.45s
Elapsed: 0.45s
US West Coast (DSL - 30KB/sec)#电话线或双绞线上网方式
RTT: 0.10s
Elapsed: 0.10s
Japan / Northern Europe (DSL)
RTT: 0.15s
Elapsed: 0.15s
China (DSL)
RTT: 0.45s
Elapsed: 0.45s
检查器(Inspectors)
自定义响应(AutoResponder)
可以在拦截请求之后,重定向到本地资源,或使用Fiddler内置响应,还可以自定义响应。
Composer
Composer的功能就是用来创建HTTP Request然后发送请求。 允许自定义请求发送到服务器,即可以手动创建一个新的请求,也可在会话表中拖拽一个现有的请求。可以作为简单的接口测试功能。
Filter过滤器
过滤器,可以帮助我们过滤出需要监控的请求。比较常用。
-
主机过滤
- show only intranet Hosts 只显示局域网请求
- Show only Internet Host 只显示广域网请求
- Hide the following Hosts 隐藏符合条件的主机,条件在下面的文本框中定义
- Show only the following Hosts 仅显示符合条件的主机
- Flag the following Hosts 标记符合条件的主机
-
进程过滤
- Show only traffic from 只过滤选择的进程的HTTP数据包
- Show only Internet Explorer traffic 只过滤IE浏览器HTTP数据包
-
请求头过滤
- Show only if URL contains 只过滤URL中包含指定内容的请求
- Hide if URL contains 隐藏URL中包含指定内容的请求
- Flag request with headers 标记出保证指定head的请求
- Delete request header 删除指定的请求头
- Set request header 设置请求头,可以在测试接口时,在每个请求中设置一个定义的Header
-
断点过滤
- Break request on HTTP POST:给所有POST请求设置断点
- Break request on HTTP GET with QueryString:给所有带参数的GET请求设置断点
- Break response on Content-Type:给特定的Content-Type设定断点
-
Response Status Code过滤
- Hide success(202,204,206):隐藏响应成功的session(202,204,206);
- Hide Authentication demands(401):隐藏未经授权被拒绝的session(401);
- Hide redirects(300,301,302,303,307):隐藏重定向的session(300,301,302,303,307)
- Hide Not Modified(304):隐藏无变更的session(304)
-
响应类型及响应大小过滤
- Show all Content-Type:显示所有响应类型
- Hide smaller than ?KB:隐藏小于指定大小的session
- Hide larger than ?KB:隐藏大于指定大小的session
- Time HeatMap:获得即时数据(绿色阴影代表响应时间在50毫秒以内;超过50毫秒但在300毫秒之内的响应条目没有颜色;响应时间在300至500毫秒之间的会涂以黄色;超过500毫秒的用红色底纹显示)
- Block script files:阻止脚本文件,显示为404
- Block image files:阻止图片文件
- Block SWF files:阻止SWF文件
- Block CSS files:阻止CSS文件
-
响应头过滤
- Flag response that set cookies:标记会设置cookie的响应
- Flag response with headers:标记带有特定header的响应
- Delete response headers:删除响应header
- Set response header:设置响应的header
增加过滤的快捷方法
二、断点应用
通过断点功能,可以在测试时方便的篡改request,response以达到测试的目的,如果:在请求头中的参数修改成错误的,或在响应返回前将响应体中的数据修复为特殊的格式查看前端的反应;断点还可以模拟断网等情况,来测试在断网的特殊情况下前端的反应。
断点的类型:
- 全局断点
- 特定请求的断点
断点的设置方法。
-
全局断点:
- Before Requests 请求前断点,可以用户篡改请求头,或请求参数
- After Responses 响应后断点,可以篡改响应头,或响应回来的数据
- 特定请求的断点
- bpu ZKing 卓京集团 针对指定的url设置请求前断点,也可以使用部分url
- bpafter ZKing 卓京集团 针对特定url设置响应后断点
-
断点命令列表
命令 | 作用 | 示例 |
bpu | 请求前中断 | bpu oa.veryedu.cn |
bpafter | 响应后中断 | bpafter oa.veryedu.cn |
bps | bps后面跟状态码,表示中断所有是这个状态码的请求 | bps 200 |
bpm | 中断http方法的命令 | bpm get |
go | 放行所有中断下来的请求 |
三、模拟网络限速
为什么需要弱网测试
弱网测试的目的就是尽可能保证用户体验。 弱网测试的关键点有哪些:
- 页面响应时间是否可以接受
- 超时情况下的系统提示处理是否符合定义,异常信息是否显示正常
- 大流量事件风险:是否会在弱网下进行更新apk包、下载文件等大流量动作
弱网情况下容易出现的问题:
- 丢包。丢包应该是最常见的问题。在TCP协议中,需要不停的发送请求,来确认连接状态,一旦发生丢包,就需要重传。这个时候就需要去检查产品的处理机制,给予什么提示,如果未响应怎么处理这些。
- 延时。延时也是很常见的问题。由于网络太差,产生了网络波动,导致数据包在传输的时候出现抖动。可能导致请求出现超时的现象。这个时候就需要给予相应的提示,或者是其他的处理方式。
Fiddler弱网测试配置
- 开启网络限速模式
开启该功能可以模拟网络被限速后系统的运行情况。
- 根据需要来定义网络限速参数
Rules --> Customize Rules
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
// 该参数代表每KB的数据被上传时会被延时多少毫秒
oSession["request-trickle-delay"] = "300";
// Delay receives by 150ms per KB downloaded.
// 该参数对应下载时每KB的数据会被延时多少毫秒
oSession["response-trickle-delay"] = "150";
}
四、HTTPS的拦截
HTTPS基础
根据HTTPS请求处理流程图,解释HTTPS的基本原理。
HTTPS是为了基于HTTP协议的通讯安全而诞生的,是HTTP + TLS/SSL 的组合体。 下面是HTTPS请求的基本过程:
Fiddler中配置HTTPS
点击 Options
勾选 Decrypt HTTPS traffic
安装证书
安装成功后,在系统的证书管理器中应该可以查看到:
截获HTTPS请求:
思考: HTTPS可以被代理解密,为什么安全铜须还需要HTTPS?
评论区等你的解答😏
相关文章:

Fiddler报文分析-断点应用、模拟网络限速-HTTPS的 拦截
目录 一、报文分析 Statistics 请求性能数据 检查器(Inspectors) 自定义响应(AutoResponder) Composer Composer的功能就是用来创建HTTP Request然后发送请求。 允许自定义请求发送到服务器,即可以手动创建一个新…...

PHP基础(3)
PHP基础表单提交文件处理PHP连接数据库异常抛出表单提交 PHP通过全局变量 $_GET和 $_POST来收集表单数据。 接下来改用post方式进行提交,再次查看是否隐藏了提交的内容: 发现提交的信息已经不在链接之中进行显示了。 GET与POST区别在于一个会在连接…...

跳槽进字节跳动了,面试真的很简单
前言: 最近金三银四跳槽季,相信很多小伙伴都在面试找工作, 怎样才能拿到大厂的offer,没有掌握绝对的技术,那么就要不断的学习 如何拿下阿里等大厂的offer的呢,今天分享一个秘密武器,资深测试工程师整理的…...
【SpringBoot9】HandlerInterceptor拦截器的使用 ——防重复提交
看本篇博客前应当先看完前面三篇,这一篇是基于前面三篇的知识点的整合。所以很多重复的代码这里就不写出了 后台通过拦截器和redis实现防重复提交,避免因为网络原因导致多次请求同时进入业务系统,导致数据错乱,也可以防止对外暴露…...
内网渗透(五十八)之域控安全和跨域攻击-约束性委派攻击
系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…...
Linux僵尸进程理解作业详解
1 下面有关孤儿进程和僵尸进程的描述,说法错误的是? A.孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。 B.僵尸进程:一个进程使用fork创建子进程,如果…...
每日一题——L1-078 吉老师的回归(15)
L1-078 吉老师的回归 曾经在天梯赛大杀四方的吉老师决定回归天梯赛赛场啦! 为了简化题目,我们不妨假设天梯赛的每道题目可以用一个不超过 500 的、只包括可打印符号的字符串描述出来,如:Problem A: Print "Hello world!&qu…...

ESP32设备驱动-DS1264数字温度传感器驱动
DS1264数字温度传感器驱动 1、DS1264介绍 DS1624 由两个独立的功能单元组成:一个 256 字节非易失性 E2 存储器和一个直接数字温度传感器。 非易失性存储器由 256 字节的 E2 存储器组成。 该存储器可用于存储用户希望的任何类型的信息。 这些内存位置通过 2 线串行总线访问。…...

8000+字,就说一个字Volatile
简介 volatile是Java提供的一种轻量级的同步机制。Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级&…...
MySQL的函数
Java知识点总结:想看的可以从这里进入 目录3.3、MySQL的函数3.3.1、字符串函数3.3.2、数学函数3.3.3、聚合函数3.3.4、日期函数3.3.5、条件判断函数3.3.6、系統信息函数3.3.7、其他函数3.3、MySQL的函数 MySQL提供了丰富的内置函数,这些函数使得数据的维…...
python排序算法
排序是指以特定格式排列数据。 排序算法指定按特定顺序排列数据的方式。 最常见的排序是数字或字典顺序。 排序的重要性在于,如果数据是以分类方式存储,数据搜索可以优化到非常高的水平。 排序也用于以更易读的格式表示数据。 下面来看看python中实现的5…...

【C++入门第二期】引用 和 内联函数 的使用方法及注意事项
前言引用的概念初识引用区分引用和取地址引用与对象的关系引用的特性引用的使用场景传值和引用性能比较引用和指针的区别内联函数内联函数的概念内联函数的特性前言 本文主要学习的是引用 及 内联含函数,其中的引用在实际使用中会异常舒适。 引用的概念 概念&…...

数据结构——顺序表讲解
作者:几冬雪来 时间:2023年2月25日 内容:数据结构顺序表内容讲解 目录 前言: 顺序表: 1.线性表: 2.什么是顺序表: 3.顺序表的概念和构成: 4.顺序表的书写: 1…...

Redis 主从复制-服务器搭建【薪火相传/哨兵模式】
Redis 安装参考文章:Centos7 安装并启动 Redis-6.2.6 注意:本篇文章操作,不能在 静态IP地址 下操作,必须是 动态IP地址,否则最后主从服务器配置不成功! 管道符查看所有redis进程:ps -ef|grep re…...
数据库|(五)分组查询
(五)分组查询1. 介绍2. 语法3. 简单分组函数2. 添加筛选条件3. 添加复杂的筛选条件4. 分组查询特点5. 按表达式或函数分组6. 按多个字段分组7. 分组查询添加排序1. 介绍 引入:查询每个部门的平均工资 -- 以前写法:求的是总平均工…...

Orin安装ssh、vnc教程
文章目录一:ssh远程终端的配置PC的配置MobaXterm的下载二:VNC Viewer远程图形界面终端配置:PC配置:一:ssh远程 终端的配置 1.ifconfig查看终端ip地址 其中的eth是网口,我们需要看的是wlan0下的inet&#…...

Allegro如何快速删除孤立铜皮操作指导
Allegro如何快速删除孤立铜皮操作指导 在做PCB设计的时候,铺铜是常用的设计方式,在PCB设计完成之后,需要删除PCB上孤立的铜皮,即铜皮有网络但是却没有任何连接 如下图 通过Status报表也可以看到Isolated shapes 如何快速地删除孤立铜皮,具体操作如下 点击Shape...

从单管单色到单管RGB,这项MicroLED工艺不可忽视
微显示技术商Porotech,在CES 2023期间展示了最新的MicroLED显示模组。近期,AR/VR光学领域的知名博主Karl Guttag深度分析了该公司的微显示技术,并指出Porotech带来了他见过最有趣的MicroLED技术。Guttag表示:Porotech是本届CES上给…...

6-Java中新建一个文件、目录、路径
文章目录前言1-文件、目录、路径2-在当前路径下创建一个文件3-在当前路径下创建一个文件夹(目录)3.1 测试1-路径已经存在3.2 测试2-路径不存在3.2 创建不存在的路径并新建文件3.3 删除已存在的文件并新建4-总结前言 学习Java中如何新建文件、目录、路径…...

Bootstrap系列之Flex布局
文章目录Bootstrap中的Flexd-flex与d-inline-flex也存在响应式变化flex水平布局flex垂直布局flex水平与垂直也存在响应式变化内容排列(justify-content响应式变化也存在于这里sm,md,lg,xl)子元素对齐方式Align items&a…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...