一、 为什么要使用抓包工具
支持捕获 HTTP/HTTPS 的数据包
支持修改网络请求参数
支持截获网络请求并动态修改
支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
二、 主流的抓包工具对比
1、 F12
优点:
F12 是众多抓包工具中最简单、最轻量级的,因为它是浏览器内置的开发者工具来提供捕获浏览器的数据报文的功能。它免安装,直接打开浏览器就可以直接使用,所有使用非常好上手,适合入门级别的新手学习。
它主要针对的是 HTTP 协议和 HTTPS 协议, 可以确认我们的网络数据包的一个状态, 通过分析请求和响应报文里面的内容, 分析出来请求数据和响应数据是否正确, 定位问题是前端问题还是后端问题。
而且 F12 作为浏览器的一部分,是数据收发的一端,抓取到的 HTTPs 报文是可以得到明文数据的;
缺点:
不过因为只能抓当前浏览器的收发报文,层次只能是在应用层 Http(s)协议,不能抓取其他的数据报文。
虽然 F12 抓包调试也能满足我们基本的测试工作需求,但是作用面和强大性和其他的抓包工具还是有一定差距的。
2、Fiddler
Fiddler 是一个使用 C# 编写的 http 抓包工具。它使用灵活,功能强大,支持众多的 http 调试任务,是 web、移动应用的开发调试利器。所以 Fiddler 经常被运用在网络爬虫抓包、HTTP API 测试、手机抓包等场景。
优点:
操作简单,上手容易,学习成本低。
能够抓取 HTTP/HTTPS 协议的数据包。
支持伪造 CA 证书来欺骗浏览器和服务器,从而实现解密 HTTPS 数据包。
不仅支持抓取 PC 浏览器的数据包,而且支持抓取手机数据包。
支持设置“断点”,从而能够修改 HTTP 的请求头信息以及请求体的数据。
缺点:
不支持 Mac OS 系统
3、Charles
Fiddler 虽然强大且好用,但是不支持 Mac OS 系统。Charles 是 Fiddler 在 Mac 系统上的代替品。目前 Charles 算是 Mac 系统上最好用的抓包工具。它使用 Java 语言开发的,所以安装以及使用之前,要事先安装好 Java 环境。另外,它还支持 Windows、Linux 等操作系统。
优点:
同样操作简单,使用方便。
支持捕获 HTTP/HTTPS 的数据包
支持修改网络请求参数
支持截获网络请求并动态修改
支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
缺点:
C