Charles 数据抓包

82 阅读4分钟

“抓包”通常指的是捕获网络通信中的数据包,是一种了解应用程序与服务器或其他服务之间的交互的方法,常用于调试网络请求、排查问题以及性能分析等。

常见的抓包工具有 WiresharkCharles,这里我们使用 Charles 来演示具体的抓包过程。

1. Charles 的安装与配置

需要注意的是,Charles 是基于 Java 开发的,它的运行同样依赖于 jdk 环境,因此在进行下面的安装教程之前,要在电脑上先安装 jdk。

1.1 安装教程

  1. 访问 www.charlesproxy.com/download 下载对应系统的安装包。

  2. 以 windows 为例,打开名为 charles-proxy-4.6.2-win64.msi 的文件,点击 Next

    image.png

  3. 先打勾安装窗口左下方的I accept ...,然后点击 Next

    image.png

  4. 安装路径可以自定义或选择默认的,确定安装路径后,点击 Next

    image.png

  5. 直到 Install 安装完成后,点击 Finish 退出安装向导。

  6. 找到并打开 Charles,点击 Help -> Register Charles 后输入以下信息完成注册。

Charles-Help-Register Charles:
Registered Name: https://zhile.io 
License Key: 48891cf209c6d32bf4

1.2 常规配置

  1. Charles 的工作原理是通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。因为我们需要勾选 Windows-Proxy,然后测试是否代理到本地。

    image.png

  2. 安装 ssl 证书。

    image.png

    image.png

2. Charles 抓包过程

curl是常用的命令行工具,用来请求 Web 服务器,它的命令行参数多达几十种。

在数据抓包前,我们需要先启动 Charles,然后使用 curl 复制某个请求的代码,通常是从浏览器的开发者工具中获取。以下是一般步骤:

  1. 打开浏览器开发者工具:

    • 在大多数现代浏览器中,你可以按下 F12 或右键点击页面并选择 "检查"来打开开发者工具。
  2. 导航到 Network 标签页:

    • 在开发者工具中,切换到 "Network" 标签页。这里记录了页面加载期间的网络请求。

    image.png

  3. 触发你关注的请求:

    • 在浏览器中执行你关注的操作,触发相应的请求。例如点击按钮、刷新页面等。
  4. 查找请求:

    • 在 "Network" 标签页中,找到你想要复制的请求。可以使用筛选器或手动查看请求列表。
  5. 右键点击请求:

    • 在请求列表中,右键点击你关注的请求,然后选择适用于 Unix/Linux 系统的 copy as cURL(bash) 或适用于 Windows 系统的 copy as cURL(cmd)

    image.png

  6. 粘贴 curl 命令:

    • 回到终端或命令行窗口,粘贴刚刚复制的内容执行即可。通常,这将是一个以 curl 开头的命令,类似于:
curl 'https://example.com/api' -H 'User-Agent: Mozilla/5.0' ...
  1. 查看 Charles 面板获取抓包详情

3. Charles 面板功能简易讲解

3.1 面板解释

  1. Charles 提供两种查看封包的视图 Structure 和 Sequence。

    (1)Structure 视图呈树状结构显示,它将网络请求按访问的域名分类。

    image.png

    (2)Sequence 视图呈水平结构显示,它将网络请求按访问的时间排序。

    image.png

  2. 快捷工具栏功能说明

    image.png

3.2 字段解释

image.png

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

    参数解释(主要是状态响应,请求,协议,连接,时间,字节数)

  2. Contents:主要显示具体的数据报文。

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

  4. ChartSummary 中简要信息以图表形式展示。

  5. Notes:备注,方便记录一些接口的信息,在 Overview 视图上可以看到备注信息。

参考资源:

  1. curl 的用法指南

  2. charles常用——电脑上的证书失效,重新安装证书

  3. Charles抓包工具的安装(含 jdk 详细)

  4. https 抓包之 ssl 证书安装

  5. Charles 配置之 Map映射 和 Proxy 代理

  6. Charles 面板功能粗略讲解

  7. Charles 安装及使用