1-Fiddler - 快速上手
before
想要学习一个软件,第一步就要从该软件的面板开始了解软件的构成。
如上图,一般我们可以将Fiddler的面板分为5部分:
- 菜单栏
- 工具栏
- 会话列表
- 命令行+状态栏
- 辅助标签+工具
我们一一来看它们都是怎么用的。
菜单栏
菜单栏都是一些关于Fiddler的设置相关,其中需要说的是Rules
设置,Rules
关于规则的设置,比如隐藏建立通道的连接,隐藏304的连接,隐藏关于图片的连接。
都相对比较简单,我们不做过多的讲解。
工具栏
如上图,工具栏是关于请求的常用的工具,从左到右依次是:
WinConfig
是关于windows的配置,用的较少,这里可以忽略掉。Set Comments
会话图标,当你选中一个连接,点击该按钮可以设置选中连接的备注信息。当你在导出会话时,可以看到这个备注信息,可以提醒别的别人关于这个连接的备注。Replay
重放请求,当你选中一个链接,点击Replay
按钮,Fiddler可以重新向该连接发送请求。Remove
也就是那个×
按钮,清除,清除所有连接,清除所有图片连接,清除非200请求等等。Go
用于断点模式。Stream
流模式(可选模式),Fiddler默认是缓冲模式,也就是服务器将所有的结果返回给Fiddler,Fiddler再一次性将结果展示,如无特殊情况不选择使用流模式。Decode
对请求做解码。Keep
保持会话的数量。Any Process
选择监听的程序,点击该按钮左边的加号,拖到想要监听的应用上去,比如拖到火狐浏览器上去,此时,Fiddler只会监听火狐浏览器的请求。Find
查找和过滤请求。Save
保存.saz
结尾的会话到本地。- 截图,截取当前桌面,可以保存到本地。
- 计时器,呃,就是个计时器,我们看下一个吧!
Browser
,当你选中一个请求后,可以点击下拉选择打开到指定浏览器,算是快捷方式吧。Clear Cache
清除IE浏览器缓存。TextWizard
编码解码工具。比如将剪贴板的内容编码为base64格式,也可以提供加密、url编码等等功能。Tearoff
将辅助工具单独分离为小窗。MSDN Search
微软开发者网络,参见维基百科。Online
关于本机的相关信息,比如网卡信息,IP等。
会话列表
如上图,会话列表(监控面板)列出了Fiddler监听的每条http请求(每一条称为一个session),主要包含了:
#
表示请求的顺序,从1开始,按照页面加载请求的顺序递增。Result
表示响应状态码。Protocol
表示请求使用的协议,如HTTP/HTTPS/FTP
等。Host
表示请求地址的域名(主机名)。URL
表示请求服务器的路径和文件名,如果是get请求,也包括参数。Body
表示响应体大小,单位是bytes
。Caching
表示缓存。Content-Type
表示响应内容的Content-Type
。Process
表示请求所在系统的应用进程/进程ID。Comments
表示用户通过脚本或者右键添加的备注信息。Custom
表示用户可以通过脚本设置的自定义值。
除了这些默认的字段,也可以手动添加一些自定义的,比如,会话列表添加字段。
在会话列表中,可以自定义的添加一些字段,怎么做呢?
- 在会话列表的title处,鼠标右键,选择
Customize columns
。
- 然后选择合适想要添加的字段。
PS:这个用处不大。
那我们如何想要在这个会话列表中展示域名对应的IP该如何做呢?
- 菜单栏选择
Rules
中的Customize Rules
。
- 再打开的编辑器中:
Ctrl + F
搜索static function Main()
。- 如下图,将
FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");
填写进去,然后Ctrl + S
保存即可。
FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");
// 注意, ServerIP 是在会话列表中显示的字段名,可以自定义
- 现在,在会话列表中就可以看到新增的一个字段了。
PS:拖动字段名字可以移动位置。
命令行 + 状态栏
命令行
命令行(Quick Eexec,快速执行命令):提供了很多快捷命令方式,比如过滤(标记)出响应体大于指定字节的请求,就可以在命令行中输入>100
然后回车,这是过滤响应体大于100字节的请求。更多参见官网,你也可以直接输入help
求助。
状态栏
在命令行输入框的下面,有些功能是空白的,但是点击有惊喜呦!
状态栏从左到右依次是:
Captruing
表示快速代理,显示Captruing
表示使用Fiddler代理,也就是启动了代理功能,当你点击后,是空白表示取消Fiddler代理。All Processes
表示监听哪些进程会话,点击后有这些选项:All Processes
表示监听所有进程会话。Web Browsers
表示仅监听浏览器的会话。Non-Browser
表示监听非浏览器的进程会话。Hide All
表示隐藏所有。
- 断点(在
All Processes
右侧,默认是空白):- 点一次,是请求前断点,也就是请求还没有发到服务器。
- 点两次,是响应后的断点,请求被服务器响应,但此时该请求只到了Fiddler,而没有到客户端。
- 再点就是取消断点。
- 会话数量与选中,比如说显示
1/9
表示共9个会话并且选中了其中的一个会话。 - 附加信息,当你在会话列表中选中了一个会话,就会展示这个会话的请求URL。
PS:我们无需记住所有的选项,只需要记得一些常用的用法即可。
辅助标签 + 工具
辅助标签这里你也可以称每个功能为选项卡。
如上图,这一部分有很多的辅助功能,我们来说说常用的功能。
Statistics
了解
当选中会话列表中的某个请求,点击辅助标签中的Statistics
选项卡,我们可以看到该请求性能相关信息:
如上图,当我们选中指定的请求后,可以点击Statistics
选项卡来查看请求相关的信息:
- request count:请求数,表示该session总共发起来多少个请求
- Bytes sent:发送请求的字节数,包括请求头和请求体
- Bytes received:接收的字节数,包括响应头和响应体
- ClientConnected:客户端连接的时间
- ClientBeginRequest:客户端开始发送请求的时间
- GotRequestHeaders:获取请求头文件的时间
- ClientDoneRequest:客户端完成请求的时间
- Determine Gateway:确定网关使用的时间
- DNS Lookup:查找DNS使用的时间
- TCP/IP Connect:tcp/ip连接使用的时间
- HTTPS Handshake:HTTP握手使用的时间
- ServerConnected:服务连接发生的时间
有了这些信息,有助于我们了解这个接口的性能。
PS:这一块,前端人员用的比较多点。
Inspectors
掌握
当你双击会话列表中的某个请求时,Fiddler会自动的打开辅助标签中的Inspectors(检查器)
,该检查器详细的为我们展示关于请求和响应的信息。
AutoResponder
重点掌握
AutoResponder可用于拦截某一请求,进行如下操作:
- 重定向到本地的资源
- 使用Fiddler的内置响应
- 自定义响应
重定向到本地的资源的意思是,我们通过fiddler将指定的请求的响应,指向我们本地的资源。
比如我们将百度主页的图片替换为我们本地的图片:
如上图,我们将百度图片,替换为本地的截图。
首先,我们拷贝上述图片的地址https://www.baidu.com/img/bd_logo1.png
,然后,辅助的标签点击AutoResponder
选项卡。
如上图中的数字意思是:
- 点击
AutoResponder
选项卡。 - 勾选如图的两个选项:
Enable rules
表示启用规则,这个必须要勾选。Unmatched requests passthrouth
表示放行不匹配的请求。
Add Rules
添加条规则。- 填写将要重定向的链接。
- 本地将给上面的链接返回什么,这里是下拉选择序号6中的本地图片。
- 选择本地图片。
当完成上述步骤之后,如下图红框中就产生了一条规则,当你勾选上之后,表示在请求中将应用上本条规则。
现在,你可以正常的使用浏览器发请求了,而百度的logo图片请求则将被我们本地的资源替换。
除了可以重定向为本地资源,你在上一步中的下拉框中也发现了很多fiddler内置的响应,比如200系列,300系列等等,你可以根据情况来选择使用。
Filters
Filters(过滤器)选项卡可以用来过滤掉一些对我们无关的请求。
按照从上到下,我们来一一的了解Filters选项卡提供的功能:
Use Filters
:启用过滤规则,该选项不勾选,下面的功能没法用。Actions
:当你设置了规则之后,点击Actions
按钮,可以进行:Run Filterset now
,是规则立即生效。Load Filterset
,如果你本地有filter规则,可以点击导入。Save Filterset
,保存filter规则。
Hosts
关于主机的过滤,这里有两个下拉框选项:- 第一个下拉框,该选项用的较少。
No Zone Filter
,什么也不做,也就是不过滤。Show only Intranet Hosts
只显示局域网hosts。Show only Internet Hosts
只显示广域网hosts。
- 第二个下拉框,用的较多,输入框中编写你的过滤主机,多个主机之间以
;
或者换行分割,并且,支持通配符*
。No Host Filter
,不过滤主机。Hide the following Hosts
隐藏以下hosts。Show only the following Hosts
只显示以下hosts。Flag the following Hosts
标记以下主机,选择该项后,符合条件的会话会在会话列表中加粗显式。
- 第一个下拉框,该选项用的较少。
Client Process
:按照客户端的进程过滤请求。Show only traffic from
,勾选该项,右侧下拉框中选择你要过滤的进程。Show only Internet Explorer traffic
仅展示IE浏览器的请求。Hide traffic from Service Host
,隐藏指定主机的请求。
Resqueset Headers
,请求头相关。Show only if URL contains
,仅展示URL中包含关键字的请求。Hide if URL contains
,隐藏URL中包含关键字的请求。Flag requests with headers
,标记请求头中包含指定关键字的请求。Delete requests headers
,删掉指定的请求头。Set request header
,为请求添加一个请求头。
Breakpoints
断点相关。Break request on POST
,当请求类型是POST的时候,加断点。Break request on GET with query string
,当使用查询字符串获取时加断点。Break on XMLHttpRequest
,XML请求加断点。Break response on Content-Type
,当响应头中包含指定关键字是加断点。
Response Status Code
,状态码相关。Hide success(2xx)
,隐藏200系列的请求。Hide non-2xx
,隐藏非200系列的请求。Hide Authentication demands(401,407)
,隐藏身份验证的请求,如401、407。Hide redirects(300,301,302,303,307)
,隐藏重定向的请求Hide Not Modified(304)
,隐藏没有被修改的请求。
Response Type and Size
,根据响应的类型和大小相关的。- 下拉框选项有,只展示或者隐藏到某些类型的响应。
Show all Content-Types
Show only IMAGE/*
Show only HTML
Show only TEXT/CSS
Show only SCRIPTS
Show only JSON
Hide IMAGE/*
Time HeatMap
,时间热度地图,Fiddler用ServerDoneResponse-FiddlerBeginRequese对象来提供请求与响应时间数据,用户可以通过filters中的Time HeatMap来获得计时数据。启动后,Fiddler会设置相应的背景颜色来区分服务器返回一个完整响应所需的时间区间。绿色阴影代表响应时间在50毫秒以内,而超过50毫秒但在300毫秒之内的响应条目没有颜色。响应时间在300至500毫秒之间的会涂以黄色,超过500毫秒的用红色底纹显示。- Block这一栏允许拦截下指定类型的响应文件,然后返回一个404错误给客户端而并不是传输目标资源。
Block script files
Block image files
Block SWF files
Block CSS files
Hide smaller than
Hide larger than
- 下拉框选项有,只展示或者隐藏到某些类型的响应。
Response Headers
,响应头相关的。Flag responses that set cookies
,标记设置了cookie的响应。Flag response with headers
,标记响应头中包含了某些关键字的响应。Delete responseheaders
,删掉响应头中包含了某些关键字的响应。Set response header
,设置响应头。
Composer
Composer选项卡支持手动构建和发送请求;也可以在Session列表中拖拽Session放到Composer中,便于我们操作和修改请求。
如上图,Composer选项卡内提供了如下的功能:
Execute
按钮,不用说了,当你构建好了请求之后,执行它。Parsed
,我们可以在该选项中构建请求,并且它会记录请求的log日志。Raw
标签:它将请求的所有信息都放在一起了,不像Parsed
标签分的那么清。Scratchpad
标签:从来保存请求信息,我们可以复制多个请求内容,然后粘贴到这个标签中,fiddler就会自动的保存这个标签中的全部信息(fiddler重启后,内容还在);当你选中某个请求内容,点击Execute
可发送请求。Options
标签:- 当勾选了
Inspect Session
时,执行请求后,会自动的打开Inspetors
选项卡。 Fix Content-Length header
:控制Composer是否自动添加或者修改Content-Length
请求头(表示请求体的大小)。我们一般保持默认,因为当我们手动的修改了请求的参数后,Content-Length
的大小会改变。Follow Redirects
:是否会自动的使用响应的Location
头。Automatically Authenticate
:是否自动响应服务器的认证需求,一般不勾选。Tear off
按钮:使Composer选项卡以独立的窗口悬浮。
- 当勾选了
我们来个模拟一个实战,通过该选项卡来完成[路飞学城]的用户信息修改的功能。
- 首先我们需要抓取到路飞学成用户信息修改的链接,如下图,我们成功的过滤出链接。
- 将Session列表中的链接拖到Composer中,然后就可以修改个人的信息,然后点击
Execute
,就修改成功了。
欢迎斧正,that's all see also: