原文链接:https://blog.csdn.net/abcnull/java/article/details/89001642
代理模式
Fiddler 的代理模式有流模式和缓冲模式,其中流模式是一种实时通信模式,请求之后实时的返回,更接近浏览器真实行为,另外一种是缓冲模式,等所有请求到了再一起返回,可以来控制最后的服务器响应,实际中我们可以根据具体场景选用不同代理模式,fiddler 默认缓冲模式,这里可改变
菜单栏
file
这里与文件导入导出加载有关
- Capture Traffic:默认勾选,勾选此项才可抓包,与点击左下角状态栏的 Capture 效果一样
- New Viewer:开启一个新的 fiddler 的 viewer,注意这里不是再开一个新的 fiddler,而是开一个新的fiddler的viewer
- Load Archive…:用于重新加载之前捕获到的 SAZ 文件格式保存的流量。Session Archive Zip 文件,用于保存 http 请求信息。
- Recent Archives:查看最近之前捕获到的 SAZ 文件格式保存的流量
- Save:保存
- Import Sessions…:从目标文件夹及其子文件夹加载所有 SAZ 文件。缓存和重用密码。
支持导入从其他工具获得的流量
- Export sessions:支持用fiddler把捕捉到的 sesison 用多种方式保存。CURL 脚本由 CURL 回放;参见 CURL
- Exit:退出 Fiddler
Edit
这里主要是鼠标点击编辑的一些操作
- Copy:用来拷贝请求的相关信息。有用于复制在 web session 列表中选中的 session 信息,包括 just URL(选中的 session 的 URL 复制到剪切板中)、this column(拷贝菜单所在列的文本)、terse summary(选中 session 的简要说明复制到剪切板里)、header only (把 session 请求头复制到剪切板里)、session(把整个的 session 列表都复制到剪切板里)、full summary(把列表中显示的所有 session 信息复制到剪切板里)这些功能
- Remove:主要是用来移除左侧边栏中的 session
- Select All:全选左侧边栏中 session
- Undelete:恢复之前删除的 session
- Paste as Sessions:把剪切板里的 sesisongs 复制到 web sessions 中,把以前的会话粘贴回来
- Mark:自定义不同 session 的显示颜色
- Unlock for Editing:把锁定的 session 进行解锁,可以进行编辑,默认情况下是不可进行编辑的,默认可以看到选定的 session 前是“锁”的图形 ,点击此按钮后变成可编辑按钮 。
- Find Sessions…:搜索 session
Rules
这里主要是一些规则的选择
- Hide Image Requests:可以隐藏图片请求,让图片类的 session 不在 session 框中显示出来
- Hide CONNECTs:可以隐藏 CONNECT 方法的请求,让这类 session 不在 session 框中显示出来
- Automatic Breakpoints:自动断点,控制是否自动在 Before Request 或 After Request 处断点,来修改请求或响应的内容
- Customize Rules…:来打开 fiddler script 工具,调取脚本操作,多用于网络修改,其他自定义时使用
- Require proxy authentication:若选中此项,则所有未提交 Require proxy authentication 的请求头的请求会返回 HTTP/407 响应,要求客户安装证书
- Apply GZIP Encoding:请求 GZIP 编码,若选中此项,则只要请求包含了 gzip 标识的 Accept-Encoding 请求头就会对除了图片以外的所有相应使用 GZIP HTTP 进行压缩
- Remove All Encoding:若选中此项,会删除所有请求相应的 http 内容编码和传输编码
- Hide 304s:在session框中隐藏所有的 304 的 session
- Request Japanese Content:把所有的 Accept-Encoding 请求头设置替换成 ja 标示,标示客户端希望以日语的形式发送
- Automatically Authenticate:自动进行身份验证
- User-Agents:选择相应的用户代理模式,默认是选择 disabled。那什么是 user-agent 呢?ua 是头域的组成部分,简单来说就是你向访问的网站提供你所用的浏览器的类型等信息,ua 字符串在每次浏览器 http 请求时发送到服务器端
- Performance:此项提供影响 web 性能的简单选项。若选中了 simulate modem speeds,它会设置所有后续 session 的 flag,把 request-trickle-delay 标志设置为 300,所有上传数据延迟 300ms/kb,若把 response-trickle-delay 标志位设为 150,会使所有下载数据延迟 150ms/kb。若选中了 disable caching,将会删除所有 If-None-Match和If-Modified-Since 请求头,并添加 Pragma:no-cache 请求头,选中该项还会删除响应中的所有 Expires 头,并把 Cache-Control 响应头设置成 no-cache,该项无法阻止浏览器重用在所用该选项之前所缓存的响应,在选中该选项后,为了得到最佳结果,最好是清空浏览器中缓存。若选择 Catch Always Fresh 会自动响应所有包含 http/304 响应的有条件的 http 请求,表示客户端缓存是最新的,当访问的站点无法正确的设置缓存失效日期时,该选项可以极大的提高性能。
Tools
这里提供各种支持 fiddler 的工具
- Options…:打开 Options 窗口,是 fiddler 抓包的一些设置项,包括对抓取接口是 http 还是 https 的设置,获取证书,设置代理端口号等功能
- WinINET Options…:打开IE浏览器的 options 进行设置
- Clear WinINET Catch:清空 IE 和其他应用中所使用的 WinINET 的缓存文件
- Clear WinINET Cookies:清空 IE 和其他应用中所使用的 WinINET 的 Cookies 文件
- TextWizard:文本向导工具,是一个非常好用的可以轻松将 text 文本 encode 和 decode 的小工具
- Compare Sessions:比较 session,可以在 session 框中选中两个 session,然后点击此按钮,可以来比较两个 session,正常情况下需要安装插件
- New Session Clipboard…:打开一个新的 session 剪贴板,可以把侧边栏中的 session 拖到这个剪贴板中具体来查看
- HOSTS:主机重定向工具。若在其中勾选 Enable 框,然后在下面加入 host 配置,点击保存之后,这个配置并不会修改到本地 hosts 中,取消勾选就会失效,若点击 Import Windows Hosts File 将会导入本地的 host 文件内容
- Reset Script:重置脚本
- Sandbox:fiddler sanbox 官方文档
- View IE Cache:打开本地文件系统,查看ie缓存
- Win8 Loopback Exemptions:Win8 回环豁免工具,这个时候会弹出一个“AppContainer 回环豁免实用程序”的窗口,若要将所有的程序使用豁免,点击“全部免除”,然后点击“保存更改”
View
提供各种视图功能
- Show Toolbar:显示工具栏,默认是勾选的
- Default Layout:默认 layout,session 在左,请求和响应在右边的上下处
- Stacked Layout:session 在上,请求在下方
- Wide layout:session 在上,请求和响应在下方的左右处
- Tabs:打开标签页面,其中有三个标签可以打开,分别是 Preferences(fiddler 偏好属性),AutoSave(fiddler 自动保存的设置),APITest(api 的测试)
- Preferences:进行属性偏好设置
- AutoSave:自动保存设置
- APITest:api 调试
- Statistics:查看一个请求的统计数据
- Inspectors:嗅探,用来查看会话的内容,上面是请求,下面是响应
- Composer:设计构造,在 Composer 中进行请求的修改,可以把 session 框中的数据先清除,然后点击 Composer 中的 Excute 按钮来发送请求,请求出现在 session 框中
- Minimize To Tray:最小化托盘
- Stay On Top:保持置顶
- Squish Session List:挤压 session 框
- AutoScroll Session List:自动滚动会话列表,默认是勾选此项的,勾选此项后,session 框中的每出现新的 session,session 框中就会不断向下滚动,若不勾选此项,就很方便具体某一个 session 的定位,即使出现了新的 session 也不会自动向下滚动
- Refresh:刷新功能,按 F5 刷新
Help
- Help:进入 fiddler 的帮助的网页中
- Get Fiddler Book…:fiddler book 的网页
- Discussions:fiddler 的讨论网页,这个需要魔法上网
- Http Preferences:进入 http preferences 相关网站
- Troubleshoot…:会捕获所有请求,对于哪些被过滤的请求用删除线表示出来并给出原因,使用时候会打开一个网页
- Get Priority Support…:打开网页购买 fiddler 的优先级服务
- Check for Updates…:检查软件更新情况
- Send Feedback…:意见反馈
- About:当前 fiddler 的相关信息
Fiddler 工具栏
- 1,WinConfig
windows 使用了一种叫做“AppContainer”的隔离技术,使得一些流量无法正常捕获,在 fiddler 中点击 WinConfig 按钮可以解除这个诅咒,这个与菜单栏 Tools→Win8 Loopback Exemptions 功能是一致的
- 2,
此按钮来给选定的 session 添加注释
- 3.Replay
重发按钮,选定请求重发按钮
- 4.Remove
移除按钮,其中有 Remove all 移除所有,Images,CONNECTs,Non-200s,Non-Browser,Complete & Unmarked,Duplicate response bodies,这些都是移除 session 中的这些状态的选项
- 5.Go
重跑 sessions,依据断点暂停
- 6.Stream
流模式是一种实时通信模式,请求之后实时的返回,更接近浏览器真实行为,但 fiddler 默认是缓冲模式而不是流模式
- 7.Decode
解码,这里可以将 session 中乱码进行解码方便查看
- 8.Keep All sessions
All sessions:这里可以保持 session 框中存在多少个 sessions
- 9.Any Process
点击此按钮并且拖动到你想要捕获的浏览器从而实现只捕获某个浏览器的请求
- 10.Find
查询
- 11.Save
保存按钮,保存所有的 session 成 SAZ 文件
- 12,
截图
- 13,
手动点击运行,手动点击暂停终止
- 14.Browser
打开浏览器来查看响应数据
- 15.Clear Cache
清除 WinINET 的缓存,按住 CTRL 键点击可以清除已经存在的 cookies
- 16.TextWizard
此工具可以将某一编码过的或者未编码过的字串拿到此处解码和编码,在菜单栏中的 Tools 中也有此项可以打开
- 17.Tearoff
此功能用来将右边栏里的请求和响应部分给单独拆成一个新窗口,方便视察
- 18.MSDN Search…
在网页版的微软开发中去搜索
- 19,
fiddler 的在线帮助网站
- 20.
鼠标悬停显示本机的一些ip信息
- 21,
用来关闭工具栏的按钮,在 View 中可以打开工具栏
Fiddler 底端状态栏
- 1,
此处与菜单栏中 File→Capture Traffic 效果是一致的,默认底端状态栏此处是有 Caturing,有它才表示 fiddler 捕获请求
- 2.All Processes
这里有 All Processes,Web Browsers,Non-Browser,Hide All 几个选项,这个几个选项顾名思义,但要注意的是这些不是筛选当前 session 框中的 session,而是选中需要筛选的状态之后,后面的请求会按照此状态来筛选
- 3.数字/数字
第一个数字表示这一个请求,第二个数字表示 session 框中共有多少 session
- 4,
此处显示请求的 url 网址
Session 栏
右键 Session 列
session 框中的列有:
当右键点击session框中的列时,可以发现有5个功能
分别是仅搜索该列;标记列中的相同项并将相同项背景滤为黄色;隐藏列该列;确保所有的列都是可视的;定制列,可以增加其他的列名,通过下图来增加,并且还可以改变列名
Session 栏中各个列讲解
名称 |
含义 |
---|---|
# |
抓取HTTP Request的顺序,从1开始,以此递增 |
Result |
HTTP状态码 |
Protocol |
请求使用的协议,如HTTP/HTTPS/FTP等 |
Host |
请求地址的主机名 |
URL |
请求资源的位置 |
Body |
该请求的大小 |
Caching |
请求的缓存过期时间或者缓存控制值 |
Content-Type |
请求响应的类型 |
Process |
发送此请求的进程:进程ID |
Comments |
允许用户为此回话添加备注 |
Custom |
允许用户设置自定义值 |
图标 |
含义 |
请求已经发往服务器 |
|
已从服务器下载响应结果 |
|
请求从断点处暂停 |
|
响应从断点处暂停 |
|
请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body) |
|
请求使用 HTTP 的 POST 方法 |
|
请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道 |
|
响应是 HTML 格式 |
|
响应是一张图片 |
|
响应是脚本格式 |
|
响应是 CSS 格式 |
|
响应是 XML 格式 |
|
响应是 JSON 格式 |
|
响应是一个音频文件 |
|
响应是一个视频文件 |
|
响应是一个 SilverLight |
|
响应是一个 FLASH |
|
响应是一个字体 |
|
普通响应成功 |
|
响应是 HTTP/300、301、302、303 或 307 重定向 |
|
响应是 HTTP/304(无变更):使用缓存文件 |
|
响应需要客户端证书验证 |
|
服务端错误 |
|
会话被客户端、Fiddler 或者服务端终止 |
右键 Session 框
在session一栏中右键点击会出现
- Decode Selected Sessions:这里 Decode Selected Sessions 是将选中的 session 进行解码,这样在响应中出现的乱码也可以成功被解码
- AutoScroll Session List:AutoScroll Session List 是默认勾选,session 滚动条自动滑动
- Copy:Copy 可以 copy 一个 session 中各个你需要的东西
- Save:Save 可以保存相应的文件
- Remove:移除
- Filter Now:过滤当前 session
- Comment…:添加评论注释
- Mark:将选中的 session 标记成不同的颜色
- Replay:请求重发的相关功能
- Select:选择需要的 session
- Compare:选中两个 session 进行比较
- COMETPeek:COMETPeek 命令会保留正在执行的响应的“快照”,在响应完成前就可以查看部分内容。当 web 应用采用 COMET 模式以流式向客户端返回数据时,可以使用该命令。由于“流式”的含义就是永不结束,直有当服务端停止连接后,Fiddler 才会返回响应
- Abort Session 终止当前正在执行的请求
- Clone Response:当 session 列表选中两个 session,并且其中一个 session 在断点处终止,而另一个 session 已经运行完成时才有用,该命令会把已完成的 session 响应拷贝给暂停运行的 session
- Unlock For Editing:使 session 的请求和响应都可以在 Inspector 中编辑,这个还是蛮有用的
- Inspect in New Window…:在一个新的窗口中来查看请求信息
- Properties…:session 的属性窗口,显示当前 session 的属性