如何使用charles,常见的charles功能

目录:

一、charles是什么?

二、charles使用前准备

三、SSL安装证书常见问题

四、Charles主要功能

1.charles界面简介

2.常用功能介绍 

(1)过滤网络请求

(2)模拟慢速网络

(3)修改网络请求内容

(4)给服务器做压力测试

------------------------------

一、charles是什么?

1.Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。

2.该软件是用Java写的,能够在Windows,Mac,Linux上使用。

3.支持抓去http、https协议的请求,不支持socket

4.charles会自动配置IE浏览器和工具的代理设置,所以说打开工具直接就已经是抓包状态了

二、charles使用前准备

1.安装Charles的时候要先装好Java环境。

2.需要Mac上的破解版

3.需要下载根证书

4.移动设备如果想抓https的请求数据,需要安装ssl证书

5.代理设置:

 

   

 

三、SSL安装证书常见问题

1.ios 10.3以上,Charles抓https的请求都会失败,提示错误信息为

Failure SSLHandshake: Received fatal alert: unknown_ca 和You may need to configure your browser or application to trust the Charles Root Certificate. 

解决方法是:

设置->通用->关于本机->证书信任设置,把安装的证书后面的开关打开。

注:虽然charles的根证书已经在安装列表中显示,但它是被关闭的。在iOS 10.3之前,当你将安装一个自定义证书,iOS会默认信任,不需要进一步的设置。而iOS 10.3之后,安装新的自定义证书默认是不受信任的。如果要信任已安装的自定义证书,需要手动打开开关以信任证书。

2.华为、小米手机有点特殊。

浏览器下载好证书后,不能直接安装,提示打不开文件,需要到设置-wifi,点击高级,安装证书

3.需要注意的是,即使是安装完证书之后,Charles 默认也并不截取 Https 网络通讯的信息,如果你想对截取某个网站上的所有 Https 网络请求,可以在该请求上右击,选择 Enable,如下图所示:

 

四、Charles主要功能

  • 支持SSL代理。可以截取分析SSL的请求。
  • 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
  • 支持重发网络请求,方便后端调试。
  • 支持修改网络请求参数。
  • 支持网络请求的截获并动态修改。

1.charles界面简介

1.clear

2.stop recording/start recording

3.start throtting/stop throtting

4.Enable breakpoints/disable  breakpoints

5.compose

6.repeat

7.显示模式

charles抓包的显示,支持两种模式,Structure和Sequence,其特点分别如下。

Structure 视图将网络请求按访问的域名分类。可以很清晰的看到请求的数据结构,而且是以域名划分请求信息的,可以很清晰的去分析和处理数据

Sequence 视图将网络请求按访问的时间排序。可以很清晰的看到全部请求,不用一层一层的去点开,这里是以数据请求的顺序去执行的。 

大家可以根据具体的需要在这两种视图之前来回切换。

2.常用功能介绍 

(1)过滤网络请求

通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,以下几种办法:

方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:http://wonapi.maxleap.com , 那么只需要在 Filter 栏中填入wonapi 即可。

方法二:在 Charles 的菜单栏选择 “Proxy”–>“Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。如下图所示:

 

通常情况下,我们使用方法一做一些临时性的封包过滤,使用方法二做一些经常性的封包过滤。

方法三:

方法三:在想过滤的网络请求上右击,选择 “Focus”,之后在 Filter 一栏勾选上 Focussed 一项,如下图所示:

       

(2)模拟慢速网络

在做移动开发的时候,我们常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常。Charles 对此需求提供了很好的支持。

在 Charles 的菜单上,选择 “Proxy”–>“Throttle Setting” 项,在之后弹出的对话框中,我们可以勾选上 “Enable Throttling”,并且可以设置 Throttle Preset 的类型。如下图所示:

 

如果我们只想模拟指定网站的慢速网络,可以再勾选上图中的 “Only for selected hosts” 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。

修改网络请求内容

(3)修改网络请求内容

有些时候为了调试服务器的接口,我们需要反复尝试不同参数的网络请求。Charles 可以方便地提供网络请求的修改和重发功能。

1.在相应的网络请求上点击右键,选择 “beakpoints”

2.重新执行这个请求

3.点击edit,编辑请求,点击execute

 

4.进入编辑响应页面。点击execute。

5.查看手机端响应结果。

 注意:compose也能达到相同效果,但仅针对当前此次请求。而打了断点,每次发送这个请求,都会要求你去编辑。

(4)给服务器做压力测试

我们可以使用 Charles 的 Repeat 功能来简单地测试服务器的并发处理能力,方法如下。

我们在想打压的网络请求上(POST 或 GET 请求均可)右击,然后选择 「Repeat Advanced」菜单项,如下所示:

 

可以发现该请求的处理时间,是随着迭代次数的增加和并发数的增加,而增加的。

-------------------

扩展:

什么是SSL?

SSL(Secure Sockets Layer 安全套件层)

https是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,https的安全基础是SSL,因此加密的详细内容请看SSL。

 

 HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。

 

原文地址:https://www.cnblogs.com/zhangqian0830/p/8385044.html