目录
2.7.1 AutoResponse 使用内置响应 操作步骤
1.Fiddler 简介及工作原理
1.1 Fiddler 简介
Fiddler是位于客户端和服务器端之间的HTTP代理,也是目前最常用的抓包工具之一 。它能够记录客户端和服务器之间的所有 请求,可以针对特定的请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。
1.2 Fiddler 工作原理
Fiddler的原理是以web代理服务器的形式进行工作的,代理就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代理服务器会将数据包进行拦截,代理服务器再冒充客户端发送数据到服务器;同理,服务器将响应数据返回,代理服务器也会将数据拦截,再返回给客户端。
如图所示:
使用的代理地址:127.0.0.1,端口:8888。
1.3 不同浏览器 Fiddler代理服务器设置
1)启用Fiddler后,系统代理设置会自动开启,地址更新成127.0.0.1:8888,如下图所示:
2)若启用Fiddler后,系统代理设置意外/人为关闭,页面会给出提示,点击后会自动开启。提示如图所示:
3)若在开启Fiddler之后没有设置相应的代理,则Fiddler是无法捕获到HTTP请求。
4)当Fiddler退出的时候系统代理设置会自动关闭, 这样就不会影响别的程序。如果Fiddler非正常退出,会造成网页无法访问。因为此种情况Fiddler没有自动注销,重新启动下Fiddler即可。
1.3.1 IE浏览器
IE代理服务器使用系统代理设置。若使用IE浏览器进行测试时,启用Fiddler后,代理会自动开启,地址更新成127.0.0.1:8888,参考系统代理设置截图。
1.3.2 Chrome 浏览器
Chrome代理服务器使用系统代理设置。若使用Chrome浏览器进行测试时,启用Fiddler后,代理会自动开启,地址更新成127.0.0.1:8888,参考系统代理设置截图。
1.3.3 Firefox 浏览器
若使用Firefox浏览器进行测试时,启用Fiddler前,需要配置代理服务器。可选择使用系统代理设置,启用Fiddler后,系统代理自动开启;也可选择手动代理配置。
路径:打开菜单->选项->常规->网络设置->设置
1) 使用系统代理设置,如图所示
2) 使用手动代理配置
2.Fiddler 界面简介(V5.0)
2.1 Fiddler 菜单栏
Fiddler的菜单栏,包括捕获请求/停止捕获请求、保存Session,导入/导出Session、清除Session、标记Session、设置捕获规则等功能。
2.1.1 Capture Traffic 功能
使用Fiddler进行抓包前,首先需要确保Capture Traffic是开启状态(安装后是默认开启的),路径:File->Capture Traffic;也可以直接点击Fiddler界面左下角的图标Capturing 开启和关闭。
2.2 Fiddler 工具栏
Fiddler 工具栏,包括Fiddler针对当前view的操作,如选择某Session重新执行(Replay),清除Session(可根据类型筛选),Decode、清除缓存等。
2.2.1 Remove Session
x:Remove Session 可根据类型筛选,主要包括:Remove all、Images、CONNECTs、Non-200s、Non-Broweser、Complete& Unmarked、Duplicate response bodies
2.2.2 Decode功能
Decode:主要用于Response乱码时的处理。有时当看到Response Body是乱码时, 被压缩了, 通过Decode可以自动解压缩,显示正常。
如图所示,
① 直接点击工具栏中的"Decode";
② 点击提示“Response body is encouded.Click to decode.”
2.3 Session面板
Session面板,主要是Fiddler抓取到的Http请求,主要包含了Result 、Protocol、HOST、URL、BODY、Content-Type等信息,如图所示:
2.3.1 Session面板字段解析
# :HTTP Request的顺序,从1开始,按照页面加载请求的顺序递增。
Result : HTTP 状态码
Protocol:请求使用的协议(如HTTP/HTTPS)
Host:请求地址的域名/ip
URL:请求的服务器路径和文件名,也包含GET参数
Body:请求的大小,以byte为单位
Content-Type:请求响应的类型
Caching:请求的缓存过期时间或缓存控制header的值
Process:发出此请求的Windows进程及进程ID
Comments :用户通过脚本或者菜单给此session增加的备注
Custom:用户可以通过脚本设置的自定义值
2.3.2 #列图标解析
2.4 Filters 过滤页签
Filters功能,主要用于过滤Sessions。
2.4.1 Host过滤指定域名
在Filers面板中勾选“Use Filters”,并在Hosts区域,设置以下三个选项:
1)第一项有三个选项,分别是:
“No zone filter”“Show Only Intranet Hosts”“Show Only Internet Hosts”,不做更改;
2)第二项有四个选项,分别是:
No Host Filter:不设置hosts过滤
Hide The Following Hosts:隐藏过滤到的域名
Show Only The Following Hosts:只显示过滤到的域名
Flag The Following Hosts:标记过滤到的域名
选择“Show Only The Following Hosts”,在文本框内输入需要过滤的域名,多个域名使用“;”分割。Fiddler默认会筛选设置的Host,只显示设置中的Sessions。
以qa.macmall.com为例,如图所示:
2.5 Inspectors 检查页签
inspectors :分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了Headers、Textview、Hexview、Raw、JSON等多种不同格式查看请求和响应的内容。
JPG 格式使用 ImageView 可以看到图片。
HTML/JS/CSS 使用 TextView 可以看到响应的内容。
Raw标签可以查看原始的符合HTTP标准的请求和响应头。
Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息。
2.6 Statistics统计页签
关于HTTP请求的性能和其他数据分析,如图所示:
通过该页签, 用户可以通过选择多个Session来得来这几个Session总的信息统计,比如多个请求和传输的字节数。
2.7 AutoResponse自动响应页签
Fiddler比较重要且比较强大的功能之一。
可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。
可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文件或者是Fiddler的内置响应。
如果要调试服务器的某个脚本文件,可以将该脚本拦截到本地,在本地修改完脚本之后,再修改服务器端的内容,这可以保证尽量在真实的环境下去调试,从而最大限度的减少bug发生的可能性。
2.7.1 AutoResponse 使用内置响应 操作步骤
步骤1:勾选Enable rules
步骤2:Add Rule
步骤3:RUle Editor 并Save
步骤4:在浏览器中访问http://qa.macmall.com/order/manual-order/v2/pre-submit,得到的结果即为设置的内置响应:
2.7.2 多种url匹配方式
1. 字符匹配
如 macmal可以匹配http://qa.macmall.com/和https://qa.macmall.com/
2. 完全匹配
以EXACT开头表示完全匹配,如:
EXACT:http://qa.macmall.com/order/operation/manual-receipt
3. 正则表达式匹配
以regex: 开头,使用正则表达式来匹配URL
如:regex:(?insx).*\.(css|js|PHP)$ 表示匹配所有以css,js,php结尾的请求url
2.8 Composer构建页签
1.支持手动构建和发送HTTP, HTTPS和FTP请求。
2.支持从Session列表中拖曳Session,放到Composer选项卡中, 然后点击Execute按钮, 把请求发送到服务器端。操作如下图所示:
步骤1:拖拽Session
步骤2:Execute操作(每点击一次,请求一次)
3.支持修改请求头等信息,如添加常用的accept, host, referrer, cookie,cache-control等头部,然后Execute。
2.9 Timeline时间轴页签
Timeline时间轴,也称为Fiddler的瀑布图,展示网络请求时间的功能。
每个网络请求都会经历域名解析、建立连接、发送请求、接受数据等阶段。把多个请求以时间作为 X 轴, 用图表的形式展现出来, 就形成了瀑布图。
在左侧会话窗口点击一个或多个,Timeline 便会显示指定内容从服务端传输到客户端的时间。如图所示:
2.10 log日志页签
打印日志功能。