• 如何使用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服务器和客户端)之间传输信息的协议。

     

  • 相关阅读:
    鞋拔子的前台
    服务器空间
    最近的加入群里负责群发邮件.
    log4net写入DB2备忘 via OLEDB & ODBC
    关于“.WriteLine()是否需要这么多重载”的笔记
    树莓派WLAN连接PC(不通过路由器)
    树莓派直连线连接PC
    树莓派ssh报错:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED解决
    MS .NET企业级应用架构设计笔记1(关于业务层)
    行存储与列存储笔记
  • 原文地址:https://www.cnblogs.com/zhangqian0830/p/8385044.html
Copyright © 2020-2023  润新知