转载出处:https://www.cnblogs.com/zhaoyanjun/p/7068905.html
Fiddler是什么?
Fiddler是一个http调试代理,它能 够记录所有的你电脑和互联网之间的http通讯,Fiddler 可以也可以让你检查所有的http通讯,设置断点,以及Fiddle 所有的“进出”的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它仅仅暴露http通讯还有提供一个用户友好的格式。
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展。你对HTTP 协议越了解, 你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能帮助你了解HTTP协议。Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具。
Fiddler的工作原理
Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。
Fiddler 下载安装
官网下载地址:http://www.telerik.com/fiddler
下载到本地,然后安装正常的安装流程执行。
运行起来就是下图的样子:
Fiddler的运行机制其实就是本机上监听 8888 端口的 HTTP 代理。 Fiddler 启动的时候默认 IE 的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以将 Chrome 浏览器的代理改为127.0.0.1:8888 就可以监听数据了。
Chrome 浏览器如何设置代理
在浏览器的最右侧,点击 三个点 图标,然后点击设置
点击左侧的设置,然后点击 显示高级设置 。
然后找到 更改代理服务器设置。
到这里,chrome 浏览器的代理就设置好了。
开启 Https 抓包监听
Fiddler 默认下,Fiddler不会捕获HTTPS会话,需要你设置下。
from all processes
: 抓取所有的 https 程序, 包括 本机 和 手机
from browsers only
: 只抓取浏览器中的 https 请求
from non-browsers only
: 只抓取除了浏览器之外的所有 https 请求
from remote clients only
: 抓取远程的客户端的 https ,可以代表手机
- 开启手机 Https 抓包
如果只想抓取 手机上的所有 https 请求,就应该选中from remote clients only
。
如何用Fiddler对Android应用进行抓包
http://jingyan.baidu.com/article/03b2f78c7b6bb05ea237aed2.html
如何开启/关闭 抓本机的包
如果需要抓取本机请求,有 3 中方式。
- 方式 1
只需要启动程序并确保左下角为 Capturing状态
即可。
- 方式 2
按快捷键 F12
进行切换。
- 方式 3
File –> Capture Traffic 勾选。
扩展:
注意这个很有用,可以开启抓本机的包,也可以过滤本机的包。当手机开启了开启了代理,就可以把本机的包过滤掉,专注抓手机的包,此时会话列表中都是手机的包了。
清空会话列表
快捷功能
- . 第一个是Capturing,控制捕获会话的快捷开关;
- . 第二个是选择当前需要捕获的会话的来源程序,所有程序、浏览器、非浏览器、都不捕获选项。
- . 第三个是会话request发送前的断点和response返回后且到浏览器前的断点,分别对应点一次,点两次该按钮(默认是空白即不设断点),request断点和response断点详情中详解
- .后面的而是当前选中会话的一些标识和描述,如当前选中的是127个会话中的第一个, 详细url为http://www……
过滤域名
Fiddler抓包可以完成我们移动开发者的调试测试需求。但是多余的网页请求和手机的其他链接影响我们手机开发的需求。所以我们需要排除其他无用的包,只关注我们指定的域名的请求包。
- 打开fiddler,找到Filters选项并点击打开。如图所示
默认情况下,这个页面是灰色的,代表默认不过滤任何请求。现在我们勾选 Use Filters
。
- 在 Hosts 里面可以看到
-
No Zone Filter : 不做任何过滤
-
Show only Intranet Hosts : 只显示内部网络主机
-
Show only Internet Hosts:只显示互联网主机。
在 Hosts 第二个下拉框里面有几个选项
show only intranet hosts