作者:猿教授
你好!我是猿教授。
今天为你介绍另一款神级工具……对,「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个列项:
#,会话icon和HTTP请求的序列号,点击可在顺序和倒叙排列之间切换。
Result,HTTP响应状态码。
Protocol,请求使用的协议,如HTTP、HTTPS等。
Host,请求地址的域名。
URL,请求的服务器路径和文件名,也包括GET参数。
Body,请求的大小以字节(byte)为单位。
Caching,请求的缓存过期时间或缓存控制(Cache-control)、Header取值。
Content-Type,响应的类型。
Process,发出请求的本地进程名即进程ID(PID)。
Comments,用户对会话的备注内容。
Custom,用户通过脚本设置的自定义值,默认没有(如IP等)。
3.2.工具栏(Tools bar)
如图3-3所示,Fiddler工具栏中一共有21个工具图标,如图3-3。
图 3-3 Fiddler工具栏
Winconfig,Windows 使用了一种称为“AppContainer”的隔离技术,使得一些进程的流量无法捕获,打开WinConfig后可设置解除隔离。
气泡按钮,给session list中的会话添加备注。选中一条回话,再点击该气泡按钮可直接添加备注内容。
replay,对某条会话的请求进行重发。选中一条回话,按下该按钮,session list末尾会看到一条新的会话请求,和原来的完全一样。
×号(delete),清空回话列表,带筛选功能。点击按钮,弹出下拉列表,7个选项,按需求选择不同选项删除会话。
delete选项 | 释义 |
---|---|
Remove all | 全部删除 |
Images | 删除图片请求 |
CONNECTs | 删除HTTP CONNECT Tunnel请求 |
Non-200s | 删除非200请求 |
Non-browser | 删除非浏览器请求 |
Complete & Unmarked | 删除已完成的且未标记的请求 |
Duplicate response bodies | 去重,删掉多余的重复请求 |
Go,对设置了断点的请求继续往下执行。
stream,在“流模式(Streaming Mode)”和“缓冲模式(Buffering Mode)”两种代理模式之间切换,Fiddler默认为缓冲模式,按下该按钮为流模式。
decode,把http请求里的东西解压出来。
keep:xx session,选择session list中存放多少数量的会话。
any process,靶向按钮,点中靶向图标再拖拽到目标进程(浏览器或其他客户端应用程序)进行监听。
find,按关键词查找会话,将查找到的会话以自定义的颜色标注出来。
save对当前捕获到的会话进行保存,可通过file菜单打开已保存的会话。
相机图标,屏幕截图,有5s倒计时,按住shift键盘可跳过倒计时直接截屏。
秒表图标,计时器按钮。第1次点击开始计时,第2次结束计时,右键复位清零。
browser,快速启动浏览器。
clear cache,该按钮是清空浏览器缓存的快捷键。
Textwizard,字符编码、解码,字符集转换工具。
tearoff,让辅助面板浮动起来(或者说和主窗口分离开来,曾为一个独立的窗口)
MSDN搜索框,Microsoft Developer Network在线搜索。
Fiddler官方在线帮助
网络链接状态,Online或Offline。
关闭工具栏,关闭后可通过菜单“View”“Show toolbar”开启工具栏。
4. 会话图标(Session Icons)
一时强迫发作,把常见的22个图标做到一张高清图上了,我相信你一定用得着。
英文释义也非常简单,就先不翻译了。如果你仍然需要可以留言,我翻给你就是了。
对初学者来说,熟悉会话图标(Session Icons)真的会极大地提高调试效率,不信你试试!
图 4-1 Fiddler会话图标含义
好了,今天先到这里,希望对你有用。不用谢!
作者:猿教授
链接:https://www.jianshu.com/p/5d9ebd1839bd