Charles 基础教程

581 阅读4分钟

1. 释义

Charles是一个HTTP代理/ HTTP监视器/反向代理,使开发人员能够查看其机器和Internet之间的所有HTTP和SSL / HTTPS流量。这包括请求,响应和HTTP标头(包含cookie和缓存信息)

2. 安装

Mac(破解版): 链接: pan.baidu.com/s/1NGqJvPZ9… 提取码: vh74 复制这段内容后打开百度网盘手机App,操作更方便哦
Windows: 链接:www.charlesproxy.com/latest-rele…

Charles 初览:

charles1.png

3. 基本配置

  1. proxy setting

    操作Proxy→Proxy Setting 来打开代理设置窗口:

charles2.png

端口:设置对应的局域网端口提供给需要被代理的设备

options:可以设置哪些host或者domain 绕过代理

  1. 移动端代理设置

    iPhone为例:

    • 电脑和手机在同一局域网

    • 手机打开设置 → 找到对应的wifi设置 → HTTP代理 → 手动配置代理 → 输入你本地的ip地址加Charles对应的端口号(8888)

    charles3.png

    保存即可 成功拦截普通的http请求 ✅

4. 抓取HTTPS接口

  1. https释义

超文本传输安全协议(英语:HyperText Transfer Protocol Secure,缩写:HTTPS;常称为HTTP over TLS、HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。 HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。

  1. charles 配置

    • 启用SSL Proxying

      打开Proxy → SSL Proxying Setting → 添加一个location项,输入host及端口号(443)

    charles4.png

    • PC端安装Charles的 证书

      Help → SSL Proxying → Install Charles Root Certificate → 输入系统的帐号密码,即可在钥匙串中看到添加好的证书

    image.png image.png

  2. 移动端安装证书

    iPhone为例:

    • Charles 选择 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser

    image.png

    • 确保手机连上代理的情况下,在手机浏览器栏输入:chls.pro/ssl,下载证书,需在手机「设置」→ 通用 → 描述文件与设备管理安装下载的证书,完成安装后

      并且 安装后 → 找到关于本机 → 证书信任设置,打开刚安装的证书的开关。

    image.png

    此时即可 成功拦截普通的https请求 ✅

  3. CloudFlare 证书

Cloudflare是一家总部位于旧金山的美国跨国科技企业,以向客户提供基于反向代理的内容分发网络(Content Delivery Network, CDN)及分布式域名解析服务(Distributed Domain Name Server)为主要业务。利用 Cloudflare 全球任播网络,Cloudflare可以帮助受保护站点抵御包拒绝服务攻击等网络攻击,确保该网站长期在线,同时提升网站的性能、加载速度以改善访客体验

根据我司安全策略,服务端接口基本都接上CloudFlare,so 我们如果需要查看https请求,需要安装 对应的CloudFlare证书 👇

image.png 此时 可清晰的看到 https请求中 完整的request与response,不会出现乱码。

5. 模拟其他网络环境

在Proxy->Throttle Setting,然后选择Enable Throttling,在Throttle Preset下选择网络类型即可,具体设置你可以自行拿捏,可快可慢,也可对特定host进行设置。

image.png

6. MAP 映射

  1. Map Remote

    释义:修改当前的请求location为我所需要的location。

    选择 Tools-> Map Remote 添加 一个From 的location 及 To 的location,Enable勾上 即可完成对一个location的远程地址映射。

image.png 2. Map Local

释义:修改当前的请求location为我所需要的本地文件。

选择 Tools-> Map 添加 一个From 的location 及 Local Path,Enable勾上 即可完成对一个location的本地文件映射。

image.png

7. 请求改写

释义:修改当前的请求location中的request与response。

  1. 添加host

    选择 Tools-> Rewrite 添加 一个需要设置的location,输入相应的配置项。

    image.png

  2. 添加重写规则

    依次选择重新类型 → 匹配项 → 替换项

    image.png Enable之后重新请求,即可完成对接口内容的替换。

    image.png

8. 接口压测

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

在对应的网络请求上右击,然后选择 「Repeat Advanced」菜单项,或者Tools-> Advanced Repeat

设置迭代数与并发数。

image.png

9. 断点

在发起一个请求的时候,我们是可以给某个请求打一个断点,然后来观察、修改请求或者返回的内容。可在请求网址右击选择Breakpoints,或者在Proxy->Breakpoint Setting设置,就可以断点某一个请求。

image.png

image.png 综上所述,Charles 功能强大,可玩性强,希望大家的调试之路畅通无阻。