Fiddler是位于客户端和服务器端的HTTP代理。css
Fiddler是目前最经常使用的http抓包工具之一。html
Fiddler是功能很是强大,是web调试的利器。web
Fiddler原理图以下:windows
Fiddler是一个代理服务器。代理地址:127.0.0.1,端口:8888。浏览器能够经过设置查看代理服务器:设置->高级->打开您计算机的代理设置->链接->局域网设置->代理服务器->在高级中就能看到代理地址:127.0.0.1和端口:8888浏览器
当浏览器向服务器请求数据时,被Fiddler截获,截获后再发送给服务器,当服务器向浏览器响应数据时,一样会被Fiddler截获,而后再发送给浏览器,因此咱们可以在Fiddler中看到请求的报文和响应的报文。缓存
关掉Fiddler、代理服务器会自动取消。若是Fiddler非正常退出,由于Fiddler没有自动注销,可能会形成网页没法访问。解决的办法是从新启动Fiddler。性能优化
Fiddler官网下载地址:https://www.telerik.com/fiddler服务器
Fiddle证书生成器下载地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2网络
Fiddler安装注意事项:不要安装在有中文和特殊字符的目录。session
Fiddler界面从上到下分为:菜单栏、工具栏、回话列表、功能页签、命令行,状态栏六大板块!以下图所示:
File菜单
一、Capture Traffic:能够控制是否把Fiddler注册为系统代理。
二、New Viewer:打开一个新的fiddler窗口
三、Load Archive:用于从新加载以前捕获的以SAZ文件格式保存的数据包。
四、Save:支持以多种方式把数据包保存到文件中。
五、Import Sessions...:支持导入从其余工具捕获的数据包,也支持导入以其余格式存储的数据包。
六、Export Sessions...:把Fiddler捕捉到的回话以多种文件格式保存。
七、Exit:取消把Fiddler注册为系统代理,并关闭Fiddler。
Edit菜单
一、Copy:复制会话。
二、Remove:删除会话。
三、Select All:选择全部会话。
四、Undelete:撤销删除会话。
五、Paste as Session把剪贴板上的内容粘贴成一个或多个模拟的会话。
六、Mark:选择一种颜色标记选中会话。
七、Unlock for Editing 解锁会话。
八、Find Session...打开Find Session窗口,搜索捕获到的数据包。
Rules菜单
一、Hide Image Request:隐藏图片回话。
二、Hide CONNECTS:隐藏链接通道回话。
三、Automatic Breakpoints:自动在[请求前]或[响应后]设置断点。Ignore Image触发器控制这些断点是否做用于图片请求。
四、Customize Rules...:打开Fiddler脚本编辑窗口。
五、Require Proxy Authentication:,要求客户端安装证书。该规则能够用于测试HTTP客户端,确保全部未提交Proxy-Authorization请求头的请求会返回HTTP/407响应码。
六、Apply GZIP Encoding:只要请求包含具备gzip标识的Accept-Encoding请求头,就会对全部响应使用GZIP HTTP进行压缩(图片请求除外)。
七、Remove All Encoding:删除全部请求和响应的HTTP内容编码和传输编码
八、Hide 304s:隐藏响应为HTTP/304 Not Modified状态的全部回话。
九、Request Japanese Content:选项会把全部请求的Accept-Encoding请求头设置或替换为ja标识,表示客户端但愿响应以日语形式发送。
十、User-Agents:把全部请求的User-Agent请求头设置或替换成指定值。
十一、performance:模拟弱网测试速度。
Tools菜单
一、Options...:打开Fiddler选项窗口。
二、WinINET Options...打开IE的Internet属性窗口
三、Clear WinINET Cache:清空IE和其余应用中所使用的WinINET缓存中的全部文件。
四、Clear WinINET Cookies:清空IE和其余应用中所发送的WinINET Cookie
五、TextWizard...:选项会启动TextWizard窗口,对文本进行编码和解码。
六、Compare Session:比较回话。
七、Reset Script:重置Fiddler脚本。
八、Sandbox:打开http://webdbg.com/sandbox/
九、View IE Cache:打开IE缓存窗口。
View菜单
一、Show Toolbar:控制Fiddler工具栏是否可见
二、Default Layout、Stacked Layout、Wide Layout三种界面布局
三、Minimize to Tray:最小化Fiddler到系统托盘(快捷键:CTRL+M )
四、Squish Session List:控制回话列表是否水平收缩。
五、AutoScroll Session list:添加新的回话时,自动滚动到回话列表底部
1.备注功能
2.从新发送请求,快捷键:R键。
3.删除请求
4.当有请求前断点时,点击去发送请求。
5.流模式。(默认是缓冲模式)
6.解码
7.保持回话的数量。
8.选择你想要抓包或者监听的程序
9.查找
10.保存全部会话,文件名以.saz为扩展名
11.截图
12.计时器
13.快捷的打开IE浏览器
14.清除IE缓存
15.文本的编码解码工具
16.分离面板
17.MSDN查询
18.本机的信息
会话(session)即Fiddler抓取到的每条http请求数据包。
主要包含:1.请求的ID编号、2. http响应状态码、3.会话使用的协议、4.请求发送到的服务器主机名、5.数据包在服务器中的路径和文件、6.响应body的字节数。7.响应头信息Cache-Control的值、八、响应头信息Content-Type的值、9.发起请求的本地windows进程、10.注释、11.自定义备注。
Statistics页签
经过该页签,用户能够经过选择多个会话来获得这几个会话的总的信息统计,好比多个请求传输的字节数。访问页面时选择第一个请求和最后一个请求,可得到整个页面加载所消耗的整体时间。从条形图表中还能够分别出哪些请求耗时最多,从而对页面的访问进行速度性能优化。
inspectors页签(经常使用页签)
它提供headers、textview、hexview,Raw等多种方式查看一条http请求的请求和响应,它分为上下两部分:上部分为请求展现,下部分为响应展现。
AutoResponse页签(经常使用页签)
它能够抓取在线页面保存到本地进行调试,大大减小了在线调试的困难,可让咱们修改服务器端返回的数据,例如让返回都是404的数据包读取本地文件做为返回内容。
composer页签(经常使用页签)
支持手动构建和发送HTTP,HTTPS和FTP请求,咱们还能够从回话列表中拖曳回话,把它放到composer选项卡中,当咱们点击Execute按钮时则把请求发送到服务器端。
FiddlerScripts页签
打开Fiddler脚本编辑。
log页签:
打印日志
Filters页签(经常使用页签)
过滤器能够对左侧的数据流列表进行过滤,咱们能够标记、修改或隐藏某些特征的数据流。
Timeline页签
时间轴,也称为Fiddler的瀑布图,展现网络请求时间的功能。每一个网络请求都会经历域名解析、创建链接、发送请求、接受数据等阶段。把多个请求以时间做为X轴,用图表的形式展示出来,就造成了瀑布图。在左侧会话窗口点击一个或多个回话,Timeline 便会显示指定内容从服务端传输到客户端的时间。
Fiddler命令行能够输入命令操做回话列表,常见命令有:
help 打开官方的使用页面介绍,全部的命令都会列出来。
cls 清屏 (Ctrl+x 也能够清屏)
select 选择全部相应类型的回话(如select image或select css)。
?sometext 查找字符串并高亮显示查找到的会话。
>size 选择请求响应大小小于size字节的会话。
=status/=method/@host 查找状态、方法、主机相对应的会话
1uit 退出fiddler
bpafter xxx 中断URL包含指定字符的所有回话响应
bps xxx 中断HTTP响应状态为指定字符的所有回话响应。
bpv xxx 中断指定请求方式的所有回话响应
bpm xxx 中断指定请求方式的所有回话响应。等同于bpv xxx
bpu xxx: 与bpafter相似。
一、显示的Fiddler是否处于捕捉状态(开启/关闭状态),能够点击该区域切换。
二、显示当前捕捉哪些进程。
All Processes 捕获全部进程的请求
Web Browsers 捕获 Web 浏览器的请求,应该特指 IE
Non-Browser 捕获非 Web 浏览器的请求
Hide All 隐藏全部请求
三、显示当前断点设置状态,经过鼠标点击切换。有三种:
不设置断点
全部请求在断点处被暂停
全部响应在断点处被暂停
4,显示当前共捕获了多少回话(如:300,表示共捕获了300个会话,如:10/300,表示当前选择10个会话,共捕获300个会话)。
5,第五区块,描述当前状态。
若是是刚打开Fiddler,会显示什么时间加载了CustomRules.js;若是选择了一个会话,会显示该会话的URL;若是在命令行输入一个命令,就会显示命令相关信息。