千锋软件测试培训班:Charles抓包工具使用详解(一)
软件测试进阶过程中你可能会遇到需要进行接口测试的时候,这个时候你就可能会使用到Charles抓包工具了,今天千锋软件测试培训班就来给大家介绍一下Charles抓包工具的使用详解。
一、charles简介
Charles 是一款常用的网络抓包工具,通过将自己设置成系统的网络访问代理服务器,用于调试与服务器端的网络通讯协议,除了常见的http协议的抓包,Charles 还可以分析 Https 协议。
Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。
Charles的功能包括但不局限如下:
截取 Http 和 Https 网络封包。 支持重发网络请求,方便后端调试。 支持修改网络请求参数。 支持网络请求的截获并动态修改。 支持模拟慢速网络。
二、Charles客户端安装
该软件是用Java写的,能够在Windows,Mac,Linux上使用。直接点击安装包安装即可。
三、charles工作原理
1、charles抓http协议包
配置好以后,Charles实际上让电脑成了一个中间代理服务器,我们手机上、浏览器的所有请求都会经过电脑,被Charles拦截,然后Charles把自己伪装成手机向我们的远程服务器地址发送请求,所以Charles能记录我们发送的请求信息;
而等服务端响应请求时,实际上是响应了Charles的请求,Charles获得服务端的响应以后,又转发给我们的手机,所以Chaerles能获得服务端响应的详细信息。
2、charles抓https协议包
Charles拦截客户端的请求,伪装成客户端向服务器进行请求
服务器向“客户端”(实际上是Charles)返回服务器的CA证书
Charles拦截服务器的响应,获取服务器证书公钥,然后自己制作一张证书,将服务器证书替换后发送给客户端。(这一步,Charles拿到了服务器证书的公钥)
客户端接收到“服务器”(实际上是Charles)的证书后,生成一个对称密钥,用Charles的公钥加密,发送给“服务器”(Charles)
Charles拦截客户端的响应,用自己的私钥解密对称密钥,然后用服务器证书公钥加密,发送给服务器。(这一步,Charles拿到了对称密钥)
服务器用自己的私钥解密对称密钥,向“客户端”(Charles)发送响应
Charles拦截服务器的响应,替换成自己的证书后发送给客户端
至此,连接建立,Charles拿到了 服务器证书的公钥 和 客户端与服务器协商的对称密钥,之后就可以解密或者修改加密的报文了。
以上就是这一期的Charles抓包工具介绍了,下一期我们继续介绍Charles抓包工具的基本功能和使用,喜欢的同学记得关注一下。最后如果你对软件测试培训感兴趣的话,欢迎大家来到千锋软件测试培训班参加我们的软件测试培训课程,不仅有两周的免费试听,更有全套学习资料和视频教程可以领取,赶紧去找在线老师了解一下吧。