Fiddler学习笔记(一):模拟弱网、过滤、设置断点
1.模拟低网速
目的:模拟用户的真实使用情况,如正在下载js,css等静态资源的时候,页面的一个渲染情况。当网速很慢的时候,我们更希望看到的是先渲染出用户界面,而不是让用户看到一片空白。
限速原理:通过延迟发送数据或接收的数据的时间来限制网络的下载速度和上传速度,从而达到限速的效果。
方法一:
Rules –> Performances–> Simulate Modem Speeds
方法二:
Rules –> Customize Rules
用文本编辑器打开CustomRules.js文件,其默认位于用户目录的文档目录下的\Fiddler2\Scripts位置,后缀名是js,其内容实质是JScript.NET——微软对ECMAScript规范的实现,与日常使用的javascript是属于同一个规范下的,但是在扩展的细节实现存在一定的不同。
在文件中中找到m_SimulateModem标志位:
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"
}
1000/下载速度 = 需要delay的时间(毫秒),比如50kb/s 需要delay200毫秒来接收数据
参考博文:https://blog.csdn.net/baidu_zhongce/article/details/46683323
2.过滤会话
2.1 filter
- use filter:使用过滤器需勾选,勾选后可以编辑过滤条件,过滤条件可以相互独立,也可以相互组合。
- action
Run Filterset now :马上执行过滤
Load Filterset: 加载本地过滤设置文件
Save Filterset :保存过滤条件到文件
- hosts
No Zone Filter :默认不通过空间进行过滤,下列选项分内网、外网
show only Intranet Hosts: 内网
show only internet Hosts:外网
No Host Filter :不通过主机名进行过滤
Hide the following Hosts:隐藏下边输入的主机名的会话
show only the following Hosts:显示下边输入的主机名的会话
flag the following Hosts:标志下边输入的要过来的主机名的会话;
二级域名的过滤,输入*.baidu.com的形式,所有在baidu.com域名下的所有请求都会被过滤出来
Client Process
show only traffic from 根据客户端进程来进行过滤
Show only Internet Explorer traffic:只显示IE发出的请求;
Hide Windows RSS platform traffic:隐藏Windows RSS平台发出的请求;Request Headers
请求header过滤规则:
经常使用:Show only if URL contains;
Flag requests with headers:标记带有特定header的请求;
Delete request headers:删除请求header;
Set request header设置请求的header;
Show only if URL contains 和 Hide if URL contains 使用方法类似 功能相反,支持正则表达式和完全匹配Breakpoints
Break request on HTTP POST:给所有POST请求设置断点;
Break request on HTTP GET with QueryString:给所有带参数的GET请求设置断点;
Break response on Content-Type:给特定的Content-Type设定断点;Response Status Code过滤
响应HTTP状态过滤规则:
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);
- Response Type and Size
响应类型和大小过滤规则:
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文件;
- Response Headers
响应header过滤规则:
Flag response that set cookies:标记会设置cookie的响应;
Flag response with headers:标记带有特定header的响应;
Delete response headers:删除响应header;
Set response header:设置响应的header;
2.2 右键
3.设置断点
3.1 基本知识
-
Fiddler修改请求
- Fiddler设置断点,可以修改HTTP请求头信息,如修改Cookie,User-Agent等
- 可以修改请求数据,突破表单限制,提交任意数字,如充值最大100,可以修改成10000
- 拦截响应数据,修改响应体,如修改服务端返回的页面数据
2.断点的两种方式:
- before response:这个是打在request请求的时候,未到达服务器之前
- after response:也就是服务器响应之后,在Fiddler将响应传回给客户端之前
3.2 设置全局断点
1.全局断点就是中断fiddler捕获的所有请求,点击rules –> automatic breakpoint –>before requests
选中 before request 后,请求,fiddler中所有的请求都处于暂停可编辑状态
2.点击Go按钮,可通过进行下一步
3.找到需要修改的请求后,选中该条会话,右侧打开WebFroms,这时候里面的参数都是可以修改的
修改之后点Run to Completion提交,修改请求参数成功
4.清除断点:rules –> automatic breakpoint –> disabled
3.3 设置单个请求断点
1.前提:知道具体的URL
2.请求前断点(before request):
命令行输入: bpu URL (回车)
拦截后可以修改任意请求参数
取消断点:
命令行输入: bpu (回车)
3.响应后断点(after requests): bpafter
命令行输入:bpafter URL (回车)
拦截到服务器返回的数据,可以修改任意返回数据
取消断点:
命令行输入: bpafter (回车)
4.拦截某个网站所有请求
设置断点命令行输入:bpu 域名 (回车)
取消断点命令行输入:bpu (回车)