Fiddler工具使用介绍三

咱们知道Fiddler是位于客户端和服务器之间的代理,它可以记录客户端和服务器之间的全部 HTTP请求,能够针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至能够修改服务器返回的数据,功能很是强大,是web调试的利器。前面咱们介绍了如何使用Fiddler进行抓包和分析,以及如何抓取APP上的数据包。这里咱们介绍下如何修改请求和响应数据,也就是设置断点。前端

对request设置断点web

1)经过菜单选项或快捷键F11进行设置,如图安全

当咱们设置断点后,进行HTTP请求,数据包顺序列会有中断的标记,单击该数据包能够看到在右侧会增长一行操做栏。这个时候咱们在前端是没有正常加载网页的,点击【Run to Completion】后能够返回响应数据。服务器

 

接下来为了看咱们的断点设置是否生效,咱们以登陆为例子进行测试。登陆无忧行网站,输入正确的用户名和密码,点击登陆。咱们断点规则设置为before request,而后将密码清空,看看服务器给咱们返回了什么响应数据。测试

 

 

继续以登陆为例子,此次咱们将手机号改为非移动帐号进行登陆。网站

 

 

 因而可知,咱们的断点已经设置成功,而且成功修改了HTTP的请求数据。编码

 2)经过菜单选项或快捷键进行设置时,会将全部的HTTP请求都设置断点,但有时咱们只想针对某个服务器发出的请求设置断点,应该怎么操做呢?Fiddler是支持命令操做的,咱们能够经过“bpu 服务器地址”命令来对特定的请求设置断点。url

在下图所示的位置输入命令,而后回车运行。spa

这个时候从该服务器发出的全部请求都会被中断,而从其余服务器发出的请求能够正常响应。命令行

若是要清除原来的断点,能够在命令行输入“bpu”,就会清除全部的断点。

对response设置断点

1)一样的也能够经过菜单选项或快捷键alt+F11进行设置

2)经过命令“bpafter 服务器地址”

咱们也用一个实例来验证经过设置断点修改响应数据。以百度主页为例,咱们拦截到响应数据中的title值为”百度一下,你就知道“,咱们将响应数据中的title改为”test百度一下,你就知道“,而后在前端看看最终展现的是什么数据。

经过几个实例,更好的帮助咱们理解断点的含义,也巩固了Fiddler做为代理服务器的概念。接下来咱们再来讲说,Fiddler另外一个很实用的功能:Fiddler的编码和解码。

 Fiddler的编码和解码

1)响应body解码

有时候咱们在Fiddler上看到响应数据是几个乱码字符,首先咱们能够点击,上方黄色提示区域直接进行解码。以下面的两个图所示。

 

 

2)请求和响应数据解码

有的时候,基于安全性考虑,开发人员会将请求和响应的body根据必定规则进行解码。若是是普通的编码规则,咱们能够直接经过Fiddler操做进行解码。例如在登陆百度网站的时候,有个参数的值是一个url地址,这个url通过urlEncode进行转码了。咱们就能够将该参数经过urlDecode进行解码。

首先,找到这个参数,选中后右键选择【send to TextWizard】

而后,在【transform】中找到【URLDecode】,字段值就被成功解码,咱们就能够很清楚的看到里面有哪些参数以及参数的值是什么了。

上面都是解码的例子,编码在实际运用中不多,就不介绍了。另外里面还有不少其余的编码/解码方法,就不一一举例啦~~