网络封包分析
即俗称的 抓包
,在 windows和Mac上都有各种软件。
Charles 是在Mac下常用的截取网络封包的工具,为了调试与服务器端的网络通讯协议,常常需要截取网络封包来进行分析。Charles是通过把自己设置成系统的 网络访问代理服务器
,使得所有的网络访问请求都通过它来完成,从而就可以实现了网络封包的截取和分析。
Charles主要功能包括:
1.支持SSL代理。可以截取分析SSL的请求。
2.支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
3.支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
4.支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
5.支持重发网络请求,方便后端调试。
6.支持修改网络请求参数 / 修改 responds返回参数。
7.支持网络请求的截获并动态修改。
8.检查HTML,CSS和RSS内容是否符合W3C标准。
其实主要就是抓取数据,实现抓取 Mac/iPhone/模拟器的请求数据(包括请求的接口参数等)
Charles
安装
Charles 不是一个免费软件,即需要购买,或者使用注册码进行注册。当然了网上的破解版本也是很多的。
Mac 安装 SSL 证书
安装SSL证书 :如果你需要截取分析SSL协议相关的内容。
1.那么需要安装Charles的CA证书。具体步骤如下/如图
Help ==> SSL Proxying ==> Install Charles Root Certificate
2.在 钥匙串
==> 系统
根证书中,双击此Charles CA证书,然后点击选择 始终信任
此时即可经过设置实现对 Mac电脑网络数据包的抓取。
直接勾选 Proxy ==> macOS Proxy
即可实现对 Mac网络数据的请求获取。
同样如果在下面实现抓取手机iPhone请求的数据,以便不被 Mac 抓取到的数据干扰,可取消勾选, macOS Proxy
> iPhone手机网络数据的获取
1. 首先保证 iPhone和Mac处于同一个WIFI下(当然在某种设置情况下,也可以使用蜂窝数据获取同样效果)
在实践中,当手机和Mac的确处于一个WIFI无线的情况下,但是还是没有出现抓取时,肯定是和当前的同处于一个路由器或者不同网关的其它网关有关系,切换到其它网络测试即可。
查看电脑IP地址: 查看ip地址方式可以通过终端直接输入:ip en
/ 系统设置 ==> 网络即可查看到 Mac ip地址
2. 设置 Charles 端口配置。
配置Charles:在菜单栏上选择 Proxy ==> Proxy Settings
,填入代理端口 8888
,并勾上 Enable transparent HTTP proxying
即完成了代理
3. 在iPhone链接的WIFI中手动 配置HTTp代理
。配置 服务器为Mac ip地址,端口为填入的 8888
4. 当按照上述 Mac和iPhone配置完成后,即可通过Charles作为Mac/iPhone的代理的服务器访问网络。
但是如果需要 Charles 截获所有数据,iPhone还需要在 Safari浏览器
中输入 chls.pro/ssl
以便在当前设备安装可信任证书并同意使用。
(查看证书位置: 设置 ==> 通用 ==> 关于本机 ==> 证书信任设置
即可查看刚刚通过浏览器自动安装的信任证书)
> 其它设置
如果需要抓取 HTTPS 请求的数据, 菜单 Proxy ==> SSL Proxying Settings ==>Enable SSL Proxying勾选即可
还有的在上述基础上,添加了 *443
> Charles 限速/修改Request、Responds数据
在需要操作的接口地址上,加入断点,在Charles截取到就可以实现 Request
/Responds
数据的修改,这样就实现了我们常说的,在不需要后台参与的情况下即可调试我们的各个接口和各种特殊情况了。