抓包工具fiddler

目录

fiddler

1.会话列表图片:
在这里插入图片描述

#:HTTP Request的顺序,从1开始,按照页面加载请求的顺序递增
URL:请求的服务器路径和文件名,也包括GET参数
Result:HTTP响应的状态码
Protocol: 请求使用的协议(如http/https/ftp)
Host: 请求地址的域名
Body: 请求的大小,以byte为单位
Caching: 请求的缓存过期时间或缓存控制 header等值
Content-Type: 请求响应的类型
Process: 发出此请求的Windows进程及进程ID
Comments: 用户通过脚本或者右键菜单给此session增加的备注
Custom: 用户可以通过脚本设置的自定义值
图片: https://uploader.shimo.im/f/UzrzvmOBfSU233V2.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

2.详情和数据统计板
图片: https://uploader.shimo.im/f/TK2vp5KTFggU6hHg.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

Statistics:数据统计面板,可以对选中多个Sessions进行统计及性能分析
图片: https://uploader.shimo.im/f/7PmSJ8mDSfUyQCYw.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

Inspectors:请求头和响应体
请求查看器:
Headers:请求头信息显示为一个分级视图,包含了web客户端信息、Cookie、传输状态等;
TextView:显示POST请求的body部分为文本;
SyntaxView:显示脚本(安装SyntaxView插件)
WebForms:以直观的界面显示QueryString的值和Body的值,显示请求的 GET 参数 和 POST body 内容,这里的Body应该是application/x-www-form-urlen-coded格式;
HexView:请求内容的16进制显示;
Auth:显示hearer中Proxy-Authorization和Authoriization信息;
Cookies:以直观的界面显示Header中Cookie的值;
Raw:将整个请求显示为纯文本;
JSON:通过JOSN格式显示;
XML:如果请求的body是XML格式,就是用分级的XML树来显示它;
响应查看器:
Transformer:响应信息的压缩编码格式;
Headers:用分级视图显示响应的header;
TextView:使用文本显示相应的body;
SyntaxView:显示脚本(安装SyntaxView插件)
ImageView:响应内容如果是图片则显示图片,左侧灰色区域会显示图片的大小、宽高、文件格式等信息,在下方还可以选择缩放模式:自动缩放、缩放以适应显示区域大小、无缩放;
HexView:响应内容的16进制显示;
WebView:响应在 Web 浏览器中的预览效果;
Auth:显示hearer中Proxy-Authorization和Authoriization信息;
Caching:显示此请求的缓存信息
Cookies:以直观的界面显示Header中Cookie的值;
Raw:将整个响应显示为纯文本;
JSON:通过JOSN格式显示;
XML:如果响应的body是XML格式,就是用分级的XML树来显示它;
AutoResponder:重新定向(主要是进行会话的拦截,然后替换原始资源的功能)
允许从本地返回文件,代替服务器响应,而不用将文件发布到服务器(可用正式环境验证本地文件)
Composer:模拟进行发送
FiddlerScript:脚本
Log:日志
Fiters:过滤
图片: https://uploader.shimo.im/f/Pw04fThl5zMgNcQM.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

第一项有三个选项,不做更改:
“No zone filter”:不做过滤
“Show Only Intranet Hosts”:只显示内部互联网主机
“Show Only Internet Hosts”:只显示互联网主机(多个用;隔开)
第二个选项是只监控以下网址,如只监控百度,在下面的输入框里填上 www.baidu.com
“No Host Filter”不设置hosts过滤
“Hide The Following Hosts”隐藏过滤到的域名
“Show Only The Following Hosts”只显示过滤到的域名
“Flag The Following Hosts”标记过滤到的域名(注意会话列表中有个左侧有个锁的标识,代表标记的会话。)
文本框内输入需要过滤的域名,多个域名使用”;“分号分割。fiddler默认会检查http头中设置的host,强制显示http地址中的域名
Actions:配置完后,选择右侧的Actions 下拉框中的 Run Filterset now 就可以立即生效了。同时我们可以维护多套filters,在不同的情形下加载不同的filter,在Actions中可以把当前的filter保存起来,也可以加载以前保存的filter。
Client Process栏。
Show only traffic from :仅显示来着XX 的进程。
Show only Intrenet explorer traffic:只显示网络浏览器的流量 。
Hide traffic from Service Host:隐藏服务主机的流量 。
3.QuickExec命令行的使用
Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。
常见得命令有:
help 打开官方的使用页面介绍,所有的命令都会列出来
cls 清屏 (Ctrl+x 也可以清屏)
select 选择会话的命令
?.png 用来选择png后缀的图片
4.Fiddler中设置前置断点修改Request
图片: https://uploader.shimo.im/f/UCIC2abISZoLo3F7.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

请求发送给之前打断点,可以调整发送的参数。
设置好断点后,所有请求在发送之前就会被终止,你可以修改httpRequest的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法:
方法 :
第一种:对所有HTTP请求都设置断点,打开Fiddler 点击Rules-> Automatic Breakpoint ->Before Requests(这种方法会中断所有的会话)
快捷键:F11
消除命令 :点击Rules-> Automatic Breakpoint ->Disabled
过程: 当我们设置断点后,进行HTTP请求,数据包顺序列会有中断的标记,单击该数据包可以看到在右侧会增加一行操作栏。这个时候我们在前端是没有正常加载网页的,点击【Run to Completion】后可以返回响应数据。

图片: https://uploader.shimo.im/f/TUfT07t9seUlmjiw.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

例子:
打开U群的登录网址,不要登陆,去fiddler里设置断点before request,点击登录,这时登陆不上一直加载;去fiddler里,点击这个请求,看右边的webforms,看服务器返回数据。
图片: https://uploader.shimo.im/f/NpP0ySEvFNEfSPxb.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

disabled这个断点,重新打开U群网址,输入假的账号密码,设置before request断点,点击登录,查看fiddler这个请求返回数据,这时发现返回数据已经被修改。断点设置成功,也能修改HTTP请求数据。
第二种: 只对某个服务器设置断点,在命令行中输入命令: bpu www.baidu.com(服务器地址) (这种方法只会中断www.baidu.com)
消除命令 :在命令行中输入命令 bpu
回车运行
图片: https://uploader.shimo.im/f/CMxTOHX3QLoLfT2r.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

这个时候从该服务器发出的所有请求都会被中断,而从其他服务器发出的请求可以正常响应。
图片: https://uploader.shimo.im/f/TZgyPFAMefoifDTJ.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

5.Fiddler中设置后置断点修改Response 
图片: https://uploader.shimo.im/f/zyh1wcZZKYEm58Ys.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

在响应回来之后打断点,调整返回数据。
方法: 第一种:打开Fiddler 点击Rules-> Automatic Breakpoint ->After Response (这种方法会中断所有的会话)
快捷键:Alt+F11
消除命令 点击Rules-> Automatic Breakpoint ->Disabled
例子:
以跟谁学官网为例,打开官网,设置断点after response,刷新网页,在fiddler点击此会话,查看右边text view中的title;
图片: https://uploader.shimo.im/f/q4vfnYU8ex4K0Sq4.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

修改title,点击run to completion,再看页面加载出来了,title为修改后的title,此时,响应数据就被修改成功了。
图片: https://uploader.shimo.im/f/q8dx9vvbj3UQRcaA.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

图片: https://uploader.shimo.im/f/5Cd954MCJ7UcZvte.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

第二种: 在命令行中输入命令: bpuafter www.baidu.com (这种方法只会中断www.baidu.com)
消除命令 在命令行中输入命令 bpuafter,回车运行
6.Fiddler模拟弱网环境
打开fiddler,默认情况下Rules –> Performances –> Simulate Modem Speeds 是未勾选状态,网络正常。当选中此选项(模拟光猫网速)后,网速就会变很慢,打开一个网页要加载很久。
Fiddler限速是以网络延迟的方式实现的,网络延迟时间*网速=传输字节数。
Fiddler默认的Simulate Modem Speeds速度实在太慢了,而这个限速的参数是可以调整的,如果需要再快一点可以修改配置文件\Fiddler2\Scripts\CustomRules.js。(如若修改勿忘备份原文件)在fiddler官网http://www.fiddlerbook.com/Fiddler/dev/ScriptSamples.asp可以找到参考示例。
下面提供了两种简单的修改脚本的方法,选择一种即可。
rules-customize rules,打开该文件后,Ctrl + F 查找m_SimulateModem标志位,可以看到如下代码。
图片: https://uploader.shimo.im/f/ee2mKkjpuv0Zu7bJ.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

注释说明: request-trickle-delay中的值代表每KB的数据被上传时会被延时多少毫秒;response-trickle-delay则对应下载时每KB的数据会被延时多少毫秒。比如你要模拟上传速度100KBps的网络,那上传延迟就是1KB/100KBps=0.01s=10ms,就改成10。

##下面的脚本实现了一个随机延时量设置,使得网络带宽不是恒定为一个低速的值,而是会在一定范围内随机抖动:
图片: https://uploader.shimo.im/f/B9Lb0hHEiiEkBo3Q.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

##修改数值,使网络带宽设置为恒定数值:
图片: https://uploader.shimo.im/f/kMiQuuT6QMs4nMuw.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

点击fiddlerScript 在代码里找到onBeforeRequest,这里定义了在发送请求前做什么。加入如下代码可以实现延迟:
oSession[“request-trickle-delay”]=“3000”; //请求阶段延迟3秒
oSession[“response-trickle-delay”]=“3000”; //响应阶段延迟3秒
图片: https://uploader.shimo.im/f/66SQlkP2klQlFXf5.png?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MjgwNjc5NTEsImciOiJZY1dDM1l0V0tLZHRkZERqIiwiaWF0IjoxNjI4MDY3NjUxLCJ1c2VySWQiOjE4Mzc5MTEwfQ.haK3kzQ-4cRVn4reqaICOKWj8IdknuVTvH5BqlHyznk

修改后保存配置文件(Ctrl+S)或者清掉缓存(Rules –> Performances –>Disable Caching),再次勾选Rules –> Performances –> Simulate Modem Speeds 进行测速。注意:每次编辑并保存配置文件后,Simulate Modem Speeds选项会被取消,请重新勾选。
上传1KB需要300ms,转化一下上传速度:1Kb/0.3s = 10/3(KB/s),如果想设置上传的速度为50KB/s,你则需要设置Delay 时间为 20ms;(=1000/50)
PS:设置之后可以通过http://www.speedtest.cn/在线测试网速,看是否生效;
2G一般上行/下行速率约为:2.7、9.6kbs,模拟设置为:uploaded 约 2962 ms,downloaded 约 833 ms;(弱网一般指2G网络)
3G一般上行/下行速率约为:384、2560kbs,设置为:uploaded 约 2.6 ms,downloaded 约 0.39 ms;
限速完毕一定要取消勾选,不然会影响上网。像第二种方法由于请求和响应都延迟3秒,会导致访问网页很慢。
7.前端性能分析和优化
通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化。
同时,还可以通过Timeline分析资源加载时序图,可以很直观地看到页面上各个资源加载过程所需要的时间和先后顺序,有利于找出加载过程中比较耗时的文件资源,帮助我们有针对性地进行性能优化。

8.Fiddler中提供的编码小工具
点击Fiddler 工具栏上的TextWizard, 这个工具可以Encode和Decode string。
9.Fiddler中查询会话
用快捷键Ctrl+F打开Find Sessions的对话框,输入关键字查询你要的会话。 查询到的会话会用黄色显示。
10.Fiddler中保存会话
有些时候我们需要把会话保存下来,以便发给别人或者以后去分析。 保存会话的步骤如下:
选择你想保存的会话,然后点击File->Save->Selected Sessions。

  • 14
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值