关于前端:Charles使用教程

87次阅读

共计 3614 个字符,预计需要花费 10 分钟才能阅读完成。

背景

Charles 是一个 HTTP 和 SOCKS 代理服务器。代理申请和响应使 Charles 可能在申请从客户端传递到服务器时检查和更改申请,以及从服务器传递到客户端时的响应。

抓包

PC 端抓包

1、抉择菜单中的 Proxy -> Mac OS X Proxy
2、确保 Charles 处于 Start Recording 状态。

挪动端抓包

1、手机和电脑在同一个网络:
2、电脑关掉防火墙,关上 Charles 的代理:Proxy -> Proxy Settings 弹窗,填入代理端口(端口默认为 8888,不必批改),勾选 Enable transparent HTTP proxying。
wifi 里找到代理,抉择手动,填写 IP 地址,端口 8888

HTTPS 抓包

pc 端证书下载安装:
Help -> SSL Proxying -> Install Charles Root Certificate
形式一:间接下载

形式二:如果下载不了,去官网下载

证书信赖

挪动端证书下载安装:
Help -> SSL Proxying – Install Charles Root Certificate on a Mobile Device。而后会弹出上面的提醒。

手机浏览器输出:chls.pro/ssl

  1. 下载后关上手机设置 - 通用 - 形容文件与设施治理,抉择配置形容文件,抉择信赖即可,看到已验证就行。
  2. 最初手机设置 - 通用 - 对于手机 - 证书信赖设置,抉择开就能够应用 HTTPS 抓包了。

留神:手机和电脑的证书的版本须要对应。
你手机原本就有 1 个是旧版本的,然而电脑连得是新版本,也要从新下载。

为什么要装置证书

如果是 HTTP 申请,因为数据自身没有加密,所以申请内容和返回后果是间接展现的。
但 HTTPS 对数据进行了加密解决,所以 Charles 面对客户端,把本人伪装成服务器,对服务器把本人伪装成客户端。

  • Charles 拦挡客户端的申请,伪装成客户端向服务器进行申请,服务器向“客户端”(实际上是 Charles)返回服务器的 CA 证书;
  • Charles 拦挡服务器的响应,获取服务器证书公钥,而后本人制作一张证书,将服务器证书替换后发送给客户端。(这一步,Charles 拿到了服务器证书的公钥);
  • 客户端接管到“服务器”(实际上是 Charles)的证书后,生成一个对称密钥,用 Charles 的公钥加密,发送给“服务器”(Charles);
  • Charles 拦挡客户端的响应,用本人的私钥解密对称密钥,而后用服务器证书公钥加密,发送给服务器。(这一步,Charles 拿到了对称密钥);
  • 服务器用本人的私钥解密对称密钥,向“客户端”(Charles)发送响应;
  • Charles 拦挡服务器的响应,替换成本人的证书后发送给客户端;
  • 当然,如果用户不抉择信赖装置 Charles 的 CA 证书,Charles 也无奈获取申请内容。还有一种,如果客户端内置了自身的 CA 证书,这时如果 Charles 把本人的证书发送给客户端,客户端会发现与程序内的证书不统一,不予通过,此时 Charles 也是无奈获取信息的。

根底设置

工具导航栏
Charles 顶部为菜单导航栏,菜单导航栏上面为工具导航栏。视图如下图所示:

  • 革除捕捉到的所有申请
  • 红点状态阐明正在捕捉申请,灰色状态阐明目前没有捕捉申请。
  • 灰色状态阐明是没有开启网速节流,绿色状态阐明开启了网速节流。
  • 灰色状态阐明是没有开启断点,红色状态阐明开启了断点。
  • 编辑批改申请,点击之后能够批改申请的内容。
  • 反复发送申请,点击之后选中的申请会被再次发送。
  • 验证选中的申请的响应。
  • 罕用性能,蕴含了 Tools 菜单中的罕用性能。
  • 罕用设置,蕴含了 Proxy 菜单中的罕用设置。

structure 依照域名划分
sequence 按工夫排序
太多了能够看工具栏底下依照 Filter 筛选

使用指南

Proxy

Proxy 菜单蕴含以下性能:

  • Start/Stop Recording:开始 / 进行记录会话。
  • Start/Stop Throttling:开始 / 进行节流。
  • Enable/Disable Breakpoints:开启 / 敞开断点模式。
  • Recording Settings:记录会话设置。
  • Throttle Settings:节流设置。
  • Breakpoint Settings:断点设置。
  • Reverse Proxies Settings:反向代理设置。
  • Port Forwarding Settings:端口转发。
  • Windows Proxy:记录计算机上的所有申请。
  • Proxy Settings:代理设置。
  • SSL Proxying Settings:SSL 代理设置。
  • Access Control Settings:访问控制设置。
  • External Proxy Settings:内部代理设置。
  • Web Interface Settings:Web 界面设置。
Recording Settings(记录会话设置)

Recording Settings 有 Options、Include、Exclude 三个选项卡:

Options:通过 Recording Size Limits 限度记录数据的大小。当 Charles 记录时,申请、响应头和响应体存储在内存中,或写入磁盘上的临时文件。有时,内存中的数据量可能会变得太多,Charles 会告诉您并进行录制。在这种状况下,您应该革除 Charles 会话以开释内存,而后再次开始录制。在录制设置中,您能够限度 Charles 将记录的最大大小; 这基本不会影响你的浏览,Charles 仅会进行录制。
Include:只有与配置的地址匹配的申请才会被录制。
Exclude:只有与配置的地址匹配的申请将不会被录制。

或者用 Focus 进行疾速过滤

Throttle Settings(节流设置)

模仿弱网环境

Bandwidth:带宽
Utilistation:利用百分比
Round-trip:往返提早
MTU:字节

Breakpoint Settings(断点设置)
Windows Proxy(记录计算机上的所有申请)

抓取电脑的申请,勾选 Windows Proxy,如果只须要抓取挪动端申请,则勾销勾选这个选项。

Proxy Settings(代理设置)

设置代理默认端口号
SSL Proxy Settings(SSL 代理设置)

勾上 Enable SSL proxying 就实现了在 Charles 上的 SSL 代理设置。之后也能够抉择 Add,而后填入须要监控的 Host 和 Port 信息,这样就达到了针对某个域名启用 SSL 代理的目标。

Tools

Tools 菜单蕴含以下性能:

  • No Caching Settings:禁用缓存设置。
  • Block Cookies Settings:禁用 Cookie 设置。
  • Map Remote Settings:近程映射设置。
  • Map Local Settings:本地映射设置。
  • Rewrite Settings:重写设置。
  • Black List Settings:黑名单设置。
  • White List Settings:白名单设置。
  • DNS Spoofing Settings:DNS 坑骗设置。
  • Mirror Settings:镜像设置。
  • Auto Save Settings:主动保留设置。
  • Client Process Settings:客户端过程设置。
  • Compose:编辑批改。
  • Repeat:反复发包。
  • Repeat Advanced:高级反复发包。
  • Validate:验证。
  • Publish Gist:公布要点。
  • Import/Export Settings:导入 / 导出设置。
  • Profiles:配置文件。
  • Publish Gist Settings:公布要点设置。
Map 映射:

Map Remote Settings:近程映射设置。
Map Local Settings:本地映射设置。
Charles 的 Map 性能分 Map Remote 和 Map Local 两种,顾名思义,Map Remote 是将指定的网络申请重定向到另一个网址申请地址,Map Local 是将指定的网络申请重定向到本地文件。

Map Remote Settings 应用:
图示,将所有 www.csc.com 的申请重定向到了 www.www.csc.com

(有些比较复杂的网络申请),能够将申请构造保留到本地,而后再应用 Map Local Settings(本地映射)的文件。

Rewrite

Rewrite 性能适宜对某一类网络申请进行一些正则替换,以达到批改后果的目标。
能够重写接口所有元素的内容:header、host、url、path、query param、response status、body。

Charles 性能总结

  • 截取 Http 和 Https 网络封包。
  • 反对重发网络申请,不便后端调试。
  • 反对批改网络申请参数。
  • 反对网络申请的截获并动静批改。
  • 反对模仿慢速网络。
  • Structure 视图将网络申请按拜访的域名分类。
  • Sequence 视图将网络申请按拜访的工夫排序。
  • Map 性能适宜长期地将某一些申请重定向到另一个网络地址或本地文件。
  • Rewrite 性能适宜对网络申请进行一些正则替换。
  • Breakpoints 性能适宜做一些临时性的批改。
正文完
 0