Fiddler基础使用及实战

一、简介

1.1 前言

  • Fiddler是最常用的Web调试工具之一。对于开发而言:
    • 前端可以通过Fiddle代理来调试JS、CSS、HTML样式。
    • 后端可以通过Fiddle查看请求和响应、定位问题。
    • 测试可以通过抓包方式,修改前端请求参数、模拟后端返回,快速定位缺陷。

1.2 简介

  • 官网:Web Debugging Proxy and Troubleshooting Tools|Fiddler

  • Fiddler是一个HTTP协议调试代理工具,是由C#编写的,包含一个简单却功能强大的基于JS.NET事件的脚本子系统,灵活性极高,并且能够使用.NET框架语言进行扩展,可以记录并检查所有客户端和服务器之间的HTTP和HTTPS请求以允许监视、设置断点,甚至是修改输入输出数据,也可以进行请求构造、设置网络丢包和延迟进行APP弱网测试等。

1.3 原理解析

image

  • Fiddler的原理是以Web代理服务器的形式进行工作的,代理(Proxy)就是在客户端和服务器之间设置一道关卡。
    • 对Web客户端而言,Fiddler(代理)扮演的是服务器的角色,接受请求报文、返回响应报文;
    • 对于Web服务器而言,代理扮演的是客户端的角色,发送请求报文、接受Web响应报文。

二、下载安装

2.1 下载:

  1. 官网选择 FIDDLER TOOLS > Fiddler Classic

  2. 点击Try For Free

  3. 选择使用原因,然后再填写邮箱,选 Country,勾选上 I agree 以及 I accept,再点击 Download For Windows,就会自动下载。

2.2 安装

  1. 双击运行下载文件,点击I agree
    image

  2. 修改存放路径,点击Install
    image

  3. 等待安装完成;

  4. 双击 Fiddler.exe 启动,点击弹窗中的cancel;

三、界面详解

  • 打开Fiddler,界面可以分为6部分:

    • 菜单栏
    • 工具栏
    • 会话面板
    • 辅助标签+工具
    • 命令行
    • 状态栏

3.1 菜单栏

  • File菜单

  • Edit菜单

    • Copy:子菜单分别支持复制选中Session的某些信息;
    • Remove:子菜单分别支持从Web Session列表中删除全部、选中或反选Session;
    • Select All(或Ctrl + A):命令选中Sessions列表的所有内容;
    • Paste as session:粘贴内容,生成一个或多个模拟的Web Session;
    • Find Session(或Ctrl + F):搜索捕获到的数据流。
  • Rules菜单

    • Hide Image Request:触发器控制是否在 Web Session 列表中显示图像类 Session
    • Hide CONNECTS:触发器控制是否在 Web Session 列表中显示使用 CONNECT 请求方法的 Session
    • Automatic Breakpoints:子菜单控制 Fiddler 是否会自动在 Before RequestsAfter Responses 处设置断点。Ignore Image 触发器控制这些断点是否作用于图片请求;
    • Customize Rules…(或 Ctrl + R):菜单命令会使用配置的脚本编辑器打开当前的 FiddlerScript 文件;
    • Require Proxy Authentication:如果选中 Require Proxy Authentication 菜单项,所有未提交 Proxy-Authorization 请求头的请求会返回 HTTP/407 响应,要求客户端安装证书,该规则可以用于测试 HTTP 客户端,确保这些规则在有证书的客户端服务器上可以正常工作;
    • Apply GZIP Encoding:如果选中 Apply GZIP Encoding 菜单项,只要请求包含具有 gzip 标识的 Accept-Encoding 请求头,就会对除了图片以外的所有响应使用 GZIP HTTP 进行压缩。该规则用于测试使用 GZIP 选项支持的客户端是否真正对内容进行压缩。该选项还支持性能调优,并且计算传输的压缩后的数据流的字节数;
    • Remove All Encoding:如果选中 Remove All Encoding,会删除所有请求和响应的 HTTP 内容编码和传输编码;
    • Hide 304s:选项会隐藏包含 HTTP/304 Not Modified 状态的响应的所有 Session
    • Request Japanese Content:选项会把所有请求的 Accept-Encoding 请求头设置或替换为 ja 标识,表示客户端希望响应以日语形式发送;
    • User-Agents:子菜单支持把所有请求的 User-Agent 请求头设置或替换成指定值;
    • performance:子菜单提供影响 Web 性能的简单选项。
  • Tools菜单

    • Options…:打开 Fiddler Options 窗口,针对 fiddler 的设置;
    • WinINET Options…:打开 IEInternet Options 窗口, windowsie 设置;
    • Clear WinINET Cache(或 Ctrl + Shift + X):选项会清空 IE 和其他应用中所使用的 WinINET 缓存中的所有文件;
    • Clear WinINET Cookies:选项会清空 IE 和其他应用中所发送的 WinINET Cookie.SessionCookies 还是保持不变;
    • TextWizard…(或 Ctrl + E):对文本进行编码和解码的工具;
    • Compare Session(或 Ctrl + W):选项只有当选中 Web Session 列表中的两个 Session 时才有效;
    • Reset Script:重置脚本;
    • Sandbox:打开 http://webdbg.com/sandbox/;
    • View IE Cache:打开 IE 缓存窗口;
    • Win8 Loopback Exemptionswindows 使用了一种叫做 “AppContainer” 的隔离技术,使得一些流量无法正常捕获,在 fiddler 中点击 Win8 Loopback Exemptions 按钮可以解除这个诅咒,这个与工具栏中的 WinConfig 功能是一致的;
    • New Session Clipboard…:打开一个 Session 的剪贴板;
    • HOSTS…:选项会打开 FiddlerHost Remapping 工具。
  • View菜单

    • Show Toolbar:控制 Fiddler 工具栏是否可见,默认是勾选的;
    • Default Layout:默认 layoutsession 在左,请求和响应在右边的上下处(界面布局);
    • Stacked Layoutsession 在上,请求在下方(界面布局);
    • Wide Layoutsession 在上,请求和响应在下方的左右处(界面布局);
    • Tabs:打开标签页面,其中有三个标签可以打开,分别是
    • Preferencesfiddler 偏好属性;
    • AutoSavefiddler 自动保存的设置;
    • APITestapi 的测试;
    • Statistics(或 F7):查看一个请求的统计数据;
    • Inspectors(或 F8):嗅探,用来查看会话的内容,上面是请求,下面是响应;
    • Composer(或 F9):设计构造在 Composer 中进行请求的修改,可以把 session 框中的数据先清除,然后点击 Composer 中的 Excute 按钮来发送请求,请求出现在 session 框中;
    • Minimize to Tray(或 Ctrl + M):可以最小化 Fiddler 到系统托盘中;
    • Stay On Top:保持置顶;
    • Squish Session List(或 F6):控制 Web Session 列表是否水平收缩;
    • AutoScroll Session list:自动滚动会话列表,默认是勾选此项的,勾选此项后,session 框中的每出现新的 sessionsession 框中就会不断向下滚动,若不勾选此项,就很方便具体某一个 session 的定位,即使出现了新的 session 也不会自动向下滚动;
    • Refresh(或 F5):刷新功能。
  • Help菜单

    • Welcome Screen:回到主页面;
    • Help:进入 fiddler 的帮助的网页中;
    • Get Fiddler Book…fiddler book 的网页;
    • Discussionsfiddler 的讨论网页,这个需要魔法上网;
    • HTTP References:进入 http 参考文献相关网站;
    • Troubleshoot…:会捕获所有请求,对于哪些被过滤的请求用删除线表示出来并给出原因,使用时候会打开一个网页;
    • Get Priority Support…:购买最新支持;
    • Check for Updates…:检查软件更新情况;
    • Send Feedback…:意见反馈;
    • About:关于当前 fiddler 的相关信息。

3.2 工具栏

  • imagewindows 使用了一种叫做 “AppContainer” 的隔离技术,使得一些流量无法正常捕获,在 fiddler 中点击 WinConfig 按钮可以解除这个隔离,这个与菜单栏 ToolsWin8 Loopback Exemptions 功能是一致的。

  • image:给 session list 中的会话添加备注。选中一条回话,再点击该按钮可直接添加备注内容,添加成功后将会在 Comments 栏下查看到该备注。

  • image:数据重放(快捷键 R ),当我们需要再一次对某个请求进行发送的时候,Fiddler 提供了回放的功能可以再一次发送请求。

  • image:清空监控面板(快捷键 Ctrl + X);可以清除面板上全部或某些请求。

  • image:是调试 debug 按钮,让请求断点继续往下走。结合状态栏使用。在状态栏第三格点(底部状态栏)一下,箭头朝上打叉,表示请求在发送的阶段有一个断点,再按下向下的是请求回来的时候产生一个断点,比如朝上的,用 replay 功能重播,但是请求没有发出去,想让断点继续走,按一下 go 就可以了,类似调试代码中的 debug 功能。

  • 通过结合状态栏中的按钮,可以调试时请求的状态进行拦截。上图状态栏处的箭头向上,表示拦截该请求发送。

  • 上图状态栏箭头向下,表示拦截请求返回。放行断点时单击上方的Go按钮即可,查看详情。

    • image:表示用来切换模式,在流模式和缓冲模式下切换,默认是缓冲模式;
      • 流模式:一种实时通信的模式,有请求就有返回,也就是实时返回;
      • 缓冲模式:等所有请求都到一起再返回,就是等所有数据都准备好了,才返回给客户端。
    • image:将http请求的内容解压出来,方便预览。
    • image:Fiddler默认保存All Session,需要注意的是Fiddler保存的会话状态越多,占用的内存越大。如果性能不是特别好,建议不要保存所有的会话。
    • image:过滤请求(靶心状态按钮是过滤不想看到的进程发出的请求,只保留我们要看到的进程请求)。该功能可以只捕获某个客户端或进程发送的请求,点击按钮拖动鼠标到指定客户端或进程上。
    • image:查找会话,并默认黄色标识该会话。
    • image:可以对捕获到的会话进行保存,保存后只需要把保存的saz文件打开即可;

3.3 会话面板

3.4 辅助标签+工具

3.5 命令行

3.6 状态栏

1 个赞