Charles的介绍,配置与使用

1592795301355

简介

Charles中文名叫青花瓷

它是一款基于HTTP协议的代理服务器

通过成为客户端或者浏览器的代理

然后截取请求和请求结果达到分析抓包的目的。

特点

  • 跨平台
    • win
    • linux
    • mac
  • 半免费
    • 启动等待
    • 运行30分钟会强制重启

原理

1592720390764

前置步骤

  1. 需要运行Charles并配置代理
  2. 在客户端上面需要配置代理

步骤

  1. 由客户端发送请求
  2. Charles接收再发送给服务端
  3. 服务端返回请求结果给Charles
  4. 由Charles转发给客户端

优点(相对于fiddler)

  • 跨平台
  • 支持按域名和按接口查看报文,简洁明了
  • 支持反向代理
  • Charles的网络限速可以选择网络类型
  • 支持AMF协议的解析

安装与配置

安装

https://www.charlesproxy.com/download/

破解

https://www.zzzmode.com/mytools/charles/

下载完成之后,将charles.jar放到Charles的安装目录下的lib文件夹,覆盖同名文件。

组件介绍

1592723489143

1592723682875

1592751870440

Charles代理设置

  1. 获取

1592724055876

客户端代理设置

  • Android

1592725551063

  • win (Charles抓取本机的请求,此项会默认设置,本机之外的IP需要手动设置,如上)

1592725750238

应用

支持HTTP与HTTPS代理

  1. 获取 代理服务器的IP 和 代理的端口

  2. 在客户端配置代理

    • 如果代理服务器与客户端为同一台主机,(即我们在客户端安装Charles作为代理服务器),相关参数会自动配置,如上图
    • 否则需要我们在客户端(PC端和移动端)手动配置,(配置方法参上)
  3. 至此就可以对HTTP协议的请求进行抓包,断点调试,弱网测试,重发等操作

  4. 对于HTTPS协议的请求,我们需要在客户端安装证书,以及在代理服务器上设置SSL代理,具体方式如下

Charles抓取https报文

  • win证书配置

    1592728901631

  • Android证书配置

    • chls.pro/ssl
    • 去除勾选 windows proxy,排除干扰
  • Charles https 代理设置

    除了以上的在客户端安装证书,我们还需要带代理服务器上进行如下设置

    1592729083036

参数解释

Filter : 过滤,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求

Overview : 查看这次请求的详细内容,例如耗时详细列车了请求开始时间、结束时间,响应开始时间、结束时间,总耗时、DNS耗时、网络延时等。

对于Size也详细列出了请求头大小、响应头大小、压缩比例等内容。

URL:进行网络请求的链接;

Status:当前状态,complete表示请求完成;

Responce Code:返回码。不同的接口,不同的请求结果,返回码都不同;

Protocol:使用的协议;

Method:请求方式,如GET请求,POST请求等;

Kept Alive:判断当前是否正在链接(活跃);

Content-Type:发送的内容类型,如这里用的是XML文本,以UTF8的方式发送;

Client Address:客户端的IP地址;

Remote Address:远程服务器的IP;

Request Start Time:请求开始的时间;

Request End Time:请求结束的时间;

Response Start Time:返回开始的时间;

Response End Time : 返回结束的时间;

Duration : 总时间;

Request Header :请求的头部大小;

Response Header:返回的头部大小;

Request : 请求发送的大小;

Response:返回数据的大小;

Total:所有数据大小;

Request Compression : 请求压缩;

Response Compression : 返回压缩;

Request : 查看请求内容(底下的Headers,Query String,Cookies,Raw。)

Headers:发送请求的头部信息;

Query String : 发送参数列表;

Cookies: 浏览器缓存;

Raw:发送的原生数据,包括了头部和参数;

Reponse : 查看响应内容

Headers:是返回的头部信息;

Text:返回信息(除去头部)后的文本;

Hex:返回信息的16进制表示;

XML:我返回的数据是XML。如果你返回的是JSON,这里就会显示JSON;

XML Text:如果你返回JSON,这里会显示JSON Text;

Raw:返回的所有原生数据,包括头部;

Summary: 查看发送数据的一些简要信息(主机,状态码,数据的类型,header和body大下,加载时间,总时间)

Chart: Summary中简要信息以图表形式展示

Notes: 其他信息

支持流量控制(弱网测试)

proxy----->throttle setting----->勾选 enabel throttling

1592729844387

其余参数:

  • utilistion 使用率

  • round-trip 延迟

  • MTU 最大传输单元

正常情况请求http://47.94.164.249/usermsg

1592730457565

启用弱网http://47.94.164.249/usermsg

1592730513659

支持断点调试

作用:用来构建异常的测试场景,修改请求及响应

  1. 右击接口链接,选择"Breakpoints"
  2. 在浏览器刷新对应接口的页面,或在导航栏 Proxy 点击breakpoints settings
  3. 此时会自动跳转到Charles并显示出接口请求信息
  4. 点击"Edit Request" ,修改请求的信息,点击"Execute"

支持网络重发请求

以代替客户端的频繁点击操作

1592736008253

或者通过选中需要重发的请求,

点击重新发送请求按钮,也可实现.