简介

Charles中文名叫青花瓷

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

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

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

特点

  • 跨平台

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

原理

前置步骤

  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文件夹,覆盖同名文件。

组件介绍

Charles代理设置

  1. 获取

客户端代理设置

  • Android

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

应用

支持HTTP与HTTPS代理

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

  2. 在客户端配置代理

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

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

Charles抓取https报文

  • win证书配置

  • Android证书配置

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

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

参数解释

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

其余参数:

  • utilistion 使用率

  • round-trip 延迟

  • MTU 最大传输单元

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

启用弱网http://47.94.164.249/usermsg

支持断点调试

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

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

支持网络重发请求

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

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

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

Charles的介绍,配置与使用的更多相关文章

  1. Charles界面介绍及使用方法

    本随笔主要内容: 一.Charles界面介绍 二.Charles使用 1.会话(Repeat.Focus.Compare.黑白名单等) 2.模拟请求做mock,使用断点.Map或Rewrite 3.指 ...

  2. Charles 抓包配置

    本文参考:charles 抓包配置 proxy setting (代理设置) 设置的主界面如下: 动态端口 启用动态端口选项来监听动态端口,每次查询启动时选择.这样可以避免与计算机上可能运行的其他网络 ...

  3. Mac下charles安装及配置

    一.下载地址 https://www.charlesproxy.com/download/ 激活码 Registered Name: https://zhile.io License Key: 488 ...

  4. Charles系列一:Charles功能介绍、下载安装和界面简介

    一:Charles主要功能介绍 Charles是一个HTTP代理/HTTP监视器/反向代理,使开发和测试人员能够查看机器和Internet之间所有的HTTP和SSL/HTTPS流量,这包括请求,响应. ...

  5. MySQL主从同步简单介绍&配置

    介绍: 现在mysql集群基本上都是使用一主多从方式,实现读写分离(主库写.从库读).负载均衡.数据备份,以前只是使用从未配置过,今天简单配置一下! mysql主从复制是通过binary log日志实 ...

  6. Charles for MAC配置与使用

    Charles已成为网络接口数据抓取的利器之一,无论是作为开发人员还是测试人员,在实际开发及调试中都需要通过网络数据接口的抓取来进行数据正确性的验证及异常的排查.Charles抓取网络接口数据的原理就 ...

  7. Charles安装及配置

    安装包及jar包下载地址: 1.下载Charles Proxy v4.2.dmg镜像文件,双击打开,将Charles拖拽到Applications中,Mac中打开一次Charles后关掉. 2.将下载 ...

  8. centos7&redhat 之 firewalld 详细介绍配置

    firewalld和iptables的关系 firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和iptables一 ...

  9. Nginx 介绍配置

    nginx的功能和优缺点 nginx是一种服务器软件,将程序放在nginx服务器上,将程序发布出去,nginx是一种高性能的Http和反向代理服务器,同时也是一个代理邮件服务器,也可以实现负载均衡. ...

随机推荐

  1. [jQuery插件]手写一个图片懒加载实现

    教你做图片懒加载插件 那一年 那一年,我还年轻 刚接手一个ASP.NET MVC 的 web 项目, (C#/jQuery/Bootstrap) 并没有做 web 的经验,没有预留学习时间, (作为项 ...

  2. 跨域解决方案 - node 转发

    目录 1. 定义 2. 代理转发 3. node 转发解决跨域问题 4. 代码演示 5. 参考地址 1. 定义 当用户需要请求数据时, 用户向前端服务器发送请求, 然后前端服务器接收请求之后向后端服务 ...

  3. Java实现 LeetCode 290 单词规律

    290. 单词规律 给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律. 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非 ...

  4. Java实现 蓝桥杯VIP 算法提高 企业奖金发放

    算法提高 企业奖金发放 时间限制:1.0s 内存限制:512.0MB 企业发放的奖金根据利润提成.利润低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10% ...

  5. java实现第五届蓝桥杯扑克序列

    扑克序列 AA223344,一共4对扑克牌.请你把它们排成一行. 要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌. 4A3A2432, 2342A3A4 请填写出 ...

  6. 运用Navicat for MySQL进行MSSQL数据转移MYSQL

    当前不同数据库进行数据转移已经不是一件麻烦事情,特别是有很多很方便的工具,而最近我在搜集各种数据时候,也需要进行大量的数据转移,并且数据库和所转移的数据库表都不同,这次给大家介绍个最简单的方法,就是使 ...

  7. Hadoop之hadoop fs和hdfs dfs、hdfs fs三者区别

      适用范围 案例 备注 小记 hadoop fs 使用范围最广,对象:可任何对象       hadoop dfs 只HDFS文件系统相关       hdfs fs 只HDFS文件系统相关(包括与 ...

  8. 架构C02-商业模式与架构设计

    商业模式与架构设计:A段架构与B段架构 <思考软件创新设计:A段架构师思考技术> A段架构师必须具备鲜活的创新思维,睿智的策略思考,犀利的洞察力和灵活的战术才能把握稍纵即逝的商机     ...

  9. sublime配置C++编译环境

    配置C++编译命令 { "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "workin ...

  10. Python中class的三种继承方法

    class parent(object): def implicit(self): print("Parent implicit()") def override(self): p ...