• 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

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

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

    种一棵树最好的时间是十年前,其次是现在
  • 相关阅读:
    剑指Offer(书):重建二叉树
    剑指Offer(书):从尾到头打印链表
    剑指Offer(书):替换空格
    剑指Offer(书):二维数组中的查找
    剑指Offer(书):数组中重复的数字
    剑指Offer(书):实现单例模式
    Centos 7安装Mysql5.7
    3000客接口迁移一记
    安装完Centos 7后的一些处理
    算法笔记—入门篇(2)—算法初步(更新中......)
  • 原文地址:https://www.cnblogs.com/fairytalk/p/13176036.html
Copyright © 2020-2023  润新知