手记

10分钟,带你认识Web调试利器Fiddler

作者:猿教授


你好!我是猿教授。

今天为你介绍另一款神级工具……对,「Web调试利器Fiddler」!

官方下载地址:https://www.telerik.com/download/fiddler


1.Fiddler是什么?

Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通信,查看所有的 “ 进/出 ” Fiddler的数据(cookie,html,js,css等文件,甚至这些数据都可以任由你修改)。

可以从3方面理解,Fiddler是一个……

  • 代理服务器(proxy): Fiddler运行之后,它在客户端(Client)和服务器端(Server)之间创建一个代理服务器(地址是127.0.0.1,端口是8888),客户端对服务器的请求,以及服务器对客户端请求的响应都要经过这个代理服务器。

  • 抓包工具(packet capture tool):由于Fiddler运行后能创建代理服务器,自然也能够记录客户端和服务器之间的所有HTTP请求(响应)的数据,就是所谓的抓包。

  • 调试工具(debug tool):Fiddler可以对HTTP请求数据进行分析、修改、调试,还可以设置断点、调试web应用,所以是一款调试工具。

Fiddler有6大Features,如图,

图 1-1 Fiddler的六大 Features


  • HTTP/HTTPs流量记录

  • Web会话操作

  • Web调试

  • 性能测试

  • 安全测试

  • 可定制插件工具


2.Fiddler工作原理


图 2-1 Fiddler工作原理示意图


如图2-1,

  • 创建代理:启动Fiddler后,Fiddler在客户端和服务器(Web server)之间创建代理服务器(Proxy)。

  • 转发请求:当客户端向服务器发送请求(request)时,代理服务器Fiddler(Proxy)先收到该请求,然后再把该请求转发至Web server。

  • 转发响应:Web server收到Fiddler转发的客户端请求后,发送响应(response),Fiddler收到响应后再转发至客户端。

Fiddler有两种工作模式,流模式(Streaming Mode)和缓冲模式(Buffering Mode)。

  • 流模式(Streaming Mode):Fiddler收到请求的数据后实时返回给客户端。

  • 缓冲模式(Buffering Mode):Fiddler收到数据后先缓存,等请求的所有数据都准备好之后才返回给客户端。


3.Fiddler界面布局

Fiddler默认布局中,主要分为6个区域。


图 3-1 Fiddler默认布局


  • 菜单栏(Menu bar)

  • 工具栏(Tools bar )

  • 会话列表面板(Session list )

  • 辅助功能面板(Axuxiliary function panel )

  • 命令行控制台(Command console)

  • 状态栏(Status bar)


3.1.会话列表面板(Session list)


图 3-2 Fiddler session list


默认的Fiddler会话列表中有11个列项:


  1. #会话icon和HTTP请求的序列号,点击可在顺序和倒叙排列之间切换。

  2. ResultHTTP响应状态码

  3. Protocol,请求使用的协议,如HTTP、HTTPS等。

  4. Host,请求地址的域名。

  5. URL,请求的服务器路径和文件名,也包括GET参数。

  6. Body,请求的大小以字节(byte)为单位。

  7. Caching,请求的缓存过期时间或缓存控制(Cache-control)、Header取值。

  8. Content-Type,响应的类型。

  9. Process,发出请求的本地进程名即进程ID(PID)。

  10. Comments,用户对会话的备注内容。

  11. Custom,用户通过脚本设置的自定义值,默认没有(如IP等)。


3.2.工具栏(Tools bar)

如图3-3所示,Fiddler工具栏中一共有21个工具图标,如图3-3。


图 3-3 Fiddler工具栏


  1. Winconfig,Windows 使用了一种称为“AppContainer”的隔离技术,使得一些进程的流量无法捕获,打开WinConfig后可设置解除隔离。

  2. 气泡按钮,给session list中的会话添加备注。选中一条回话,再点击该气泡按钮可直接添加备注内容。

  3. replay,对某条会话的请求进行重发。选中一条回话,按下该按钮,session list末尾会看到一条新的会话请求,和原来的完全一样。

  4. ×号(delete),清空回话列表,带筛选功能。点击按钮,弹出下拉列表,7个选项,按需求选择不同选项删除会话。

delete选项释义
Remove all全部删除
Images删除图片请求
CONNECTs删除HTTP CONNECT Tunnel请求
Non-200s删除非200请求
Non-browser删除非浏览器请求
Complete & Unmarked删除已完成的且未标记的请求
Duplicate response bodies去重,删掉多余的重复请求
  1. Go,对设置了断点的请求继续往下执行。

  2. stream,在“流模式(Streaming Mode)”和“缓冲模式(Buffering Mode)”两种代理模式之间切换,Fiddler默认为缓冲模式,按下该按钮为流模式。

  3. decode,把http请求里的东西解压出来。

  4. keep:xx session,选择session list中存放多少数量的会话。

  5. any process,靶向按钮,点中靶向图标再拖拽到目标进程(浏览器或其他客户端应用程序)进行监听。

  6. find,按关键词查找会话,将查找到的会话以自定义的颜色标注出来。

  7. save对当前捕获到的会话进行保存,可通过file菜单打开已保存的会话。

  8. 相机图标,屏幕截图,有5s倒计时,按住shift键盘可跳过倒计时直接截屏。

  9. 秒表图标,计时器按钮。第1次点击开始计时,第2次结束计时,右键复位清零。

  10. browser,快速启动浏览器。

  11. clear cache,该按钮是清空浏览器缓存的快捷键。

  12. Textwizard,字符编码、解码,字符集转换工具。

  13. tearoff,让辅助面板浮动起来(或者说和主窗口分离开来,曾为一个独立的窗口)

  14. MSDN搜索框,Microsoft Developer Network在线搜索。

  15. Fiddler官方在线帮助

  16. 网络链接状态,Online或Offline。

  17. 关闭工具栏,关闭后可通过菜单“View”“Show toolbar”开启工具栏。


4. 会话图标(Session Icons)

一时强迫发作,把常见的22个图标做到一张高清图上了,我相信你一定用得着。

英文释义也非常简单,就先不翻译了。如果你仍然需要可以留言,我翻给你就是了。

对初学者来说,熟悉会话图标(Session Icons)真的会极大地提高调试效率,不信你试试!


图 4-1 Fiddler会话图标含义



好了,今天先到这里,希望对你有用。不用谢!



作者:猿教授
链接:https://www.jianshu.com/p/5d9ebd1839bd


2人推荐
随时随地看视频
慕课网APP