在 Fiddler 中,支持两种模式,分别是缓冲模式(Buffer)和流模式(Stream)。
Fiddler 使用缓冲模式,可控制服务器的响应,如:对响应的数据进行修改等等。
Fiddler 使用流模式不能控制服务器的响应,服务器响应什么数据就展示什么数据,流模式更接近于浏览器本身真实的行为。
默认情况下,Fiddler 使用缓冲模式 (Buffering Mode) 操作绝大多数响应。在缓冲模式中,Fiddler 会在数据返回客户端之前完全的缓冲 HTTP(S) 响应。这让 Fiddler 用户可以在客户端接收到响应之前有机会修改响应内容。如下图:
使用流模式时,Fiddler 一旦从远程服务器拿到响应,会立即返回响应给客户端。这对较低网络时间设定来说是非常重要的,因为多数 Web 浏览器 (IE、Firefox 等) 都会在尚未完全下载 HTML 页的时候就开始解析它,并开始并行下载需要的资源 (如 CSS、JS 文件),即使远程服务器还没完全传输该 HTML。某种意义上,这可能会带来略微的性能提升。
流模式在其他的一些场景下也非常有用,尤其是访问 Internet 广播、音乐类站点时,该站点会使用一个永不结束的 MP3 数据流传递给客户端。一个音频流,从字面上说,应该是永远不会结束的,所以 Fiddler 尝试去完整的缓冲它几乎不可能。
Fiddler 会自动使用流模式处理 video/* 和 audio/* 类型响应。你可以开启或关闭这种自动处理,点击主菜单 Tools -> Fiddler Options 的常规选项卡,取消 “Automatically stream audio and video” 的勾选。如下图:
开启流模式非常简单,直接点击工具栏的“Stream”按钮即可。如下图:
【小提示】
在流模式中,对响应设置的断点将不会被触发,对响应的 header 和 body 的改变在客户端也无法看到。