【charlse】charlse功能

(一)主界面介绍

一、工具导航栏

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

工具导航栏中提供了几种常用工具:

  •  :清除捕获到的所有请求
  •  :红点状态说明正在捕获请求,灰色状态说明目前没有捕获请求。
  •  :灰色状态说明是没有开启网速节流,绿色状态说明开启了网速节流。
  •  :灰色状态说明是没有开启断点,红色状态说明开启了断点。
  •  :编辑修改请求,点击之后可以修改请求的内容。
  •  :重复发送请求,点击之后选中的请求会被再次发送。
  •  :验证选中的请求的响应。
  •  :常用功能,包含了 Tools 菜单中的常用功能。
  •  :常用设置,包含了 Proxy 菜单中的常用设置。

二、主界面视图

Charles 主要提供两种查看封包的视图,分别名为structure 和 sequence。

  • Structure: 此视图将网络请求按访问的域名分类。
  • Sequence: 此视图将网络请求按访问的时间排序。

使用时可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。

对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是 POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles 可以自动帮你将 JSON 内容格式化,方便你查看。如果响应内容是图片,那么 Charles 可以显示出图片的预览。

(二)、菜单

一、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 界面设置。

1.Recording Settings(记录会话设置)

Recording Settings 和 Start/Stop Recording 配合使用,在 Start Recording 的状态下,可以通过 Recording Settings 配置 Charles 的会话记录行为。Recording Settings 的视图如下图所示:

Recording Settings 有 OptionsIncludeExclude 三个选项卡:

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

Include 和 Exclude 选项卡的操作相同,选择 Add,然后填入需要监控的Procotol、Host 和 Port等信息,这样就达到了过滤的目的。如下图所示:

 还有一种方法就是在一个请求网址上右击选择 Focus,然后其他的请求就会被放到一个叫 Other Host 的分类里面,这样也达到了过滤的目的。

2.Throttle Settings(节流设置)

Throttle Settings 和 Start/Stop Throttling 配合使用,在 Start Throttling 的状态下,可以通过 Throttle Settings 配置 Charles 的网速模拟配置。Throttle Settings 的视图如下图所示:

 勾选 Enable Throttling 启用网速模拟配置,在 Throttle Preset 下选择网络类型即可,具体设置可以根据实际情况自行设置。如果只想模拟指定网站的慢速网络,可以再勾选上图中的 Only for selected hosts 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。

Throttle Settings 视图中的选项含义如下:

  • Bandwidth:带宽
  • Utilistation:利用百分比
  • Round-trip:往返延迟
  • MTU:字节

3.Breakpoint Settings(断点设置)

Breakpoint Settings 和 Enable/Disable Breakpoints 配合使用,在 Enable Breakpoints 的状态下,可以通过 Breakpoint Settings 配置 Charles 的断点模式。Breakpoint Settings 的视图如下图所示:

勾选 Enable Breakpoints 启用断点模式,选择 Add,然后填入需要监控的Scheme、Procotol、Host 和 Port 等信息,这样就达到了设置断点的目的。然后可以来观察或者修改请求或者返回的内容,但是在这过程中需要注意请求的超时时间问题。或者可以在某个想要设置断点的请求网址上右击选择 Breakpoints 来设置断点。

4.Windows Proxy(记录计算机上的所有请求)

如果想要抓取电脑端的请求,勾选 Windows Proxy 选项即可;如果只需要抓取手机请求,则取消勾选这个选项。

5.SSL Proxy Settings(SSL 代理设置)

SSL Proxy Settings 的视图如下图所示:

勾上 Enable SSL proxying 就完成了在 Charles 上的 SSL 代理设置。之后也可以选择 Add,然后填入需要监控的 Host 和 Port 信息,这样就达到了针对某个域名启用 SSL 代理的目的。

6.Access Control Settings(访问控制设置)

Access Control Settings 表示访问控制设置。访问控制列表确定谁可以使用此 Charles 实例。通常,您在自己的计算机上运行 Charles,并且您只打算自己使用它,因此 localhost 始终包含在访问控制列表中。也可以选择 Add,然后填入允许访问的 IP,这样就达到了允许某个 IP 访问 Charles 的目的。

7.External Proxy Settings(外部代理设置)

External Proxy Settings 表示外部代理设置。可能在网络上有一个代理服务器,必须使用该代理服务器才能访问 Internet。在这种情况下,需要将 Charles 配置为在尝试访问 Internet 时使用现有代理。

可以配置单独的代理地址和端口:

  • HTTP
  • HTTPS
  • SOCKS

如果您有 SOCKS 代理,Charles 将把它用于所有非 HTTP(S) 流量,例如端口转发。

二、Tools 菜单

Charles 是一个 HTTP 和 SOCKS 代理服务器,所有的请求都会经过 Charles。下面主要介绍 Charles 提供的一些实用工具。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:发布要点设置。

1.No Caching Settings(禁用缓存)

No Caching 工具可防止客户端应用程序(如 Web 浏览器)缓存任何资源。因此,始终向远程网站发出请求,您始终可以看到最新版本。

适用范围

该工具可以作用于每个请求(选中 Enable No Caching 即可),也可以仅对你配置的请求启用(启用 No Caching 的同时,请选中 Only for selected locations)。当用于选定的请求时,可以使用简单但功能强大的模式匹配将工具的效果限制为指定的主机和路径。

工作原理

No Caching 工具通过操纵控制响应缓存的 HTTP 请求头来防止缓存。从请求中删除 If-Modified-Since 和 If-None-Match 请求头,添加 Pragma:no-cache 和 Cache-control:no-cache。从响应中删除 Expires,Last-Modified 和ETag 请求头,添加 Expires:0 和 Cache-Control:no-cache。

2.Block Cookies Settings(禁用 Cookie)

Block Cookies 工具阻止了 Cookie 的发送和接收。它可用于测试网站,就像在浏览器中禁用了 Cookie 一样。 请注意,网络爬虫(例如 Google)通常不支持 Cookie,因此该工具还可用于模拟网络爬虫网站的视图。

适用范围

该工具可以作用于每个请求(选中 Enable Block Cookies 即可),也可以仅对你配置的请求启用(启用 Block Cookies 的同时,请选中 Only for selected locations)。当用于选定的请求时,可以使用简单但功能强大的模式匹配将工具的效果限制为指定的主机和路径。

工作原理

Block Cookies 工具通过操纵控制响应 Cookies 的 HTTP 请求头来禁用 Cookies。从请求中移除 Cookie 请求头,防止 Cookie 值从客户端应用程序(例如 Web 浏览器)发送到远程服务器。从响应中删除 Set-Cookie 请求头,防止请求设置客户端应用程序从远程服务器接收的 Cookie。

3.Map Remote Settings(远程映射)

Map Remote 工具根据配置的映射更改请求站点,以便从新站点透明地提供响应,就好像这是原始请求一样。

通过此映射,您可以从另一个站点提供全部或部分站点。例如:

  • 可以把 xk72.com/charles/ 映射到 localhost/charlesdev/ 来为 xk72.com 提供一个子目录;
  • 可以把 xk72.com/*.php 这种指定后缀的所有文件映射到 localhost/charlesdev/。
使用建议

如果您拥有站点的开发版本并且希望能够通过开发提供的某些请求浏览实时站点,则 Map Remote 非常有用。例如,您可能希望从开发服务器提供 css 和 images 目录。使用 live.com/css/ 等映射到 dev.com/css/ 或 live.com/*.css 到 dev.com 。

映射类型
  • 可以将目录映射到目录,如 xk72.com/charles/ 映射到 localhost/charlesdev/;
  • 可以将文件映射到文件,如 xk72.com/charles/download.php 映射到 abc.com/testing/test.html;
  • 可以将带有文件模式的目录映射到目录,如 xk72.com/charles/*.php 到 localhost/charlesdev/;
  • 如果在目标映射中未指定路径,则 URL 的路径部分将不会更改。如果要映射到根目录,请在目标路径字段中已 / 结尾。

4.Map Local Settings(本地映射)

Map Local 工具使您可以使用本地文件,就像它们是远程网站的一部分一样。您可以在本地开发文件,并像在线上一样测试它们。本地文件的内容将返回给客户端,就像它是正常的远程响应一样。

Map Local 可以大大加快开发和测试速度,否则您必须将文件上传到网站以测试结果。使用 Map Local,您可以在开发环境中安全地进行测试。

5.Rewrite Settings(重写)

Rewrite 工具允许创建请求和响应在通过 Charles 时修改他们的规则。如:添加或更改头信息、搜索和替换响应内容中的某些文本等。

6.重写集

重写集可以单独激活和停用。每个集合包含站点和规则的列表。这些站点选择规则将要运行的请求和响应。

7.重写规则

每个规则都描述了一次重写操作。规则可能会影响请求URL的 Header,正文或部分内容;它可以根据请求或响应来操作;它可以定义搜索、替换或者仅替换样式重写。

以下为将request body中的zoneNumber替换为ZN

8.Black List Settings(黑名单)

Black List 工具允许输入应该被阻止的域名。当 Web 浏览器尝试从被列入黑名单的域名请求任何页面时,该请求将被 Charles 阻止。您还可以输入通配符来阻止其子域名。

9.White List Settings(白名单)

Black List 工具允许输入仅仅被允许的域名。Black List 工具将阻止除被列入白名单的域名之外的所有请求。

白名单工具用于仅允许指定的域名;黑名单工具,用于仅屏蔽指定的域名。

如果一个请求与“黑名单”和“白名单”都匹配,则该请求会被阻止。

10.DNS Spoofing Settings(DNS 欺骗)

DNS欺骗,就是把域名解析到一个假的IP上。一般的开发流程中,在上线之前都需要在测试环境中先行进行验证,而此时手机客户端请求的域名是不太容易改变的,可以通过设置 DNS 方式把域名转发到测试机上,通过“Tools”->"DNS Spoofing",进入设置页面
比如要把所有 www.baidu.com 的域名转到 test.com 的服务器上,可以设置如下:

11.Mirror Settings(镜像)

Mirror 工具会在浏览指定站点时,把接收到的响应内容克隆一份,并保存在磁盘上指定的路径下。

保存文件的路径会与浏览站点的目录结构相同,并且 Charles 会为主机名创建一个根目录。文件名从 URL 导出并转换为适合的数据进行保存。查询字符串包含在文件名中。如果收到相同 URL 的两个响应,则后面一个文件会覆盖前面的同名文件,因此保存在镜像中在的响应内容将始终为最新的。

选定站点

可以为每个请求启用该工具,也可以仅为指定站点启用该工具。当用于选定的站点时,可以使用简单但功能强大的模式匹配将工具的效果限制为指定的主机和/或路径。

副作用

如果为请求启用镜像工具,它将导致任何压缩或编码的响应被解码。因此,如果服务器提供了压缩响应,Charles 将在传递给客户端之前对其进行解压缩,这通常不会产生任何影响。但是如果您已经构建了自己的客户端,或者客户端希望得到压缩响应,此时将会产生影响。使用 web 浏览器则没有任何影响。

12.Auto Save Settings(自动保存)

Auto Save 工具会按设定的时间间隔自动保存清除记录会话。

如果您让 Charles 长时间监控网络活动,并希望将记录分解为可管理的单元,或者避免因数据量过大而可能出现的内存不足情况,这将非常有用。

输入以分钟为单位的保存间隔以及保存会话文件的目录。您可以选择是否在每次运行 Charles 时启动 Auto Save 工具,否则在 Charles 启动时将始终禁用 Auto Save 工具。

会话文件的名称中保存时间戳,格式为 yyyyMMddHHmm,即年月日时分,以便按字母顺序排序时,它们以正确的顺序显示。

13.Compose(编辑修改)

Compose 工具允许在原有的请求基础上修改。(和fiddler相似)

14.Repeat Advanced(高级重复)

Repeat Advanced 工具扩展了 Repeat 工具,提供了迭代次数和并发数的选项。这对于负载测试非常有用。

(三)、charlse使用教程

一、通过 Charles 进行 PC 端抓包

Charles 会自动配置浏览器和工具的代理设置,所以说打开工具直接就已经是抓包状态了。只需要保证一下几点即可:

  1. 确保 Charles 处于 Start Recording 状态。
  2. 勾选 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy

二、通过 Charles 进行移动端抓包

手机抓包的原理,和 PC 类似,手机通过把网络委托给 Charles 进行代理与服务端进行对话。具体步骤如下:

  1. 使手机和电脑在一个局域网内,不一定非要是一个 IP 段,只要是在同一个路由器下即可。
  2. 电脑端配置:
    • 关掉电脑端的防火墙(这点很重要)。
    • 打开 Charles 的代理功能:通过主菜单打开 Proxy | Proxy Settings 弹窗,填入代理端口(端口默认为 8888,不用修改),勾选 Enable transparent HTTP proxying
    • 如果不需要抓取电脑上的请求,可以取消勾选 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy
  3. 手机端配置:
    • 通过 Charles 的主菜单 Help | Local IP Address 或者通过命令行工具输入 ipconfig 查看本机的 IP 地址。
    • 设置代理:打开手机端的 WIFI 代理设置,输入电脑 IP 和 Charles 的代理端口。
  4. 设置好之后,我们打开手机上的任意需要网络请求的程序,就可以看到 Charles 弹出手机请求连接的确认菜单(只有首次弹出),点击 Allow 即可完成设置。
  5. 完成以上步骤,就可以进行抓包了。

三、通过 Charles 进行 HTTPS 抓包

HTTPS 的抓包需要在 HTTP 抓包基础上再进行设置。需要完成一下步骤:

  1. 完成 HTTP 抓包配置。
  2. 电脑端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate 安装证书。
  3. 设置 SSL 代理:通过主菜单打开 Proxy | SSL Proxy Settings 弹窗,勾选 Enable SSL proxying
  4. 移动端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate on a Mobile Device or Remote Browser 安装证书。
  5. 设置好之后,我们打开手机上的任意需要网络请求的程序,就可以看到 Charles 弹出手机请求连接的确认菜单(只有首次弹出),点击 Allow 即可完成设置。
  6. 完成以上步骤,就可以进行 HTTPS 抓包了。

链接:https://juejin.im/post/5b8350b96fb9a019d9246c4c

原文地址:https://www.cnblogs.com/dhs94/p/11674991.html

时间: 2024-10-27 18:58:37

【charlse】charlse功能的相关文章

Charlse 抓包

下载Charlse:https://www.charlesproxy.com/ 安装使用: https://www.cnblogs.com/ceshijiagoushi/p/6812493.html https://blog.csdn.net/zhuiyi1820/article/details/53736173 https://blog.csdn.net/glt_code/article/details/64905192 http://blog.51cto.com/itafei/2072637

Http抓包工具Charlse使用教程

[原文]http://blog.csdn.net/wildfireli/article/details/19829479 Charles是目前最强大的http调试工具,在界面和功能上远强于Fiddler,同时是全平台支持,堪称圣杯级工具,唯一的缺陷是这货是收费的,而且是要¥50美元大洋…当然网上是有破解版的,鄙视下自己,无耻地使用了…放在网盘里,亲可以默默带走,不要留下一片云彩. 破解版传送门. 先安装里面的原版,然后copy charles.jar覆盖到安装目录下的lib目录即可.这是V3.6

采用c#实现功能1

看了好多c#的菜鸟教程不如自己开始动手打代码,最终实现了功能一,参考了网上的wordcount代码发现无论是c++还是c#大部分采用的是哈希表的方法实现的,本来还想仅用循环实现遍历句子中的所有字符,即发现"  "就total++,但是考虑到功能二的单词数变得很多,这样做时间相对来说会慢一点,因此选择了hash表来实现功能.因为仅是一个句子,所以只需要将句子中的空格split就可以了,但在解决过程中我碰到的最大问题是C:\Users\dell-pc\Desktop\wcc\wcc\Int

微信公众平台的最新功能详细介绍与使用技巧!

近日微信官方发布消息,微信公众平台的操作进行了又一次"感天动地"的更新 且听我一一道来 本次主要重要改(Geng)革(Xin)凸显在三个地方 改(Geng)革(Xin)一:图文模版的收藏与使用 这,真的是一个超级实用的功能呀,那么如何使用呢?在哪里找呢? 首先告诉大家,如何收藏图文模板 选中编辑区的部分或者全部素材,然后点击添加模版,图文模板即可收藏成功: 当然,你还可以从外部进行粘贴和复制内容到图文模版. 那么,在哪里找到我收藏的模版呢?? 嗯,就在添加图文模版的旁边啦! 同时,你还

最新版勤哲Excel服务器V2016.12.0.292无限用户支持手机APP,微信,网页等功能不绑定电脑,任意安装,支持后续升级

最新版勤哲Excel服务器V2016.12.0.292无限用户支持手机APP,微信,网页等功能不绑定电脑,任意安装,支持后续升级. 这个版本发布过之后,再发布新的版本需要到下个月的中下旬,老朋友可以使用本版本后面延续升级 目前有大约127家用户在用,没有修改过注册授权文件,系统非常成熟,推荐指数为五星,QQ:619920289 麦枫论坛http://www.mfsun.com 简介 EXCEL服务器作为一款客户化.综合性管理软件,它通过Excel就能构造出您自主的管理系统:同时,她也可将您公司现

微信JS-SDK实现上传图片功能

最近在项目开放中,有一个在微信WEB项目中上传图片的需求,一开始使用了传统的<input type="file">的方式去实现,但是后面发现在使用这种传统模式时会由于手机系统的差异而导致一系列的问题,后改用微信JSSDK的方式来实现. 总的来说,利用JSSDK来实现该功能一共分为四步. 1. 调用wx.config(),初始化jssdk的配置,并在jsApiList中配置上传图片需要的四个api('chooseImage','previewImage','uploadIma

019 添加分区功能 - bos

一.基础调整 1.删除subarea.jsp中新增窗口的分区编码一行 2.修改Subarea.hbm.xml,主键生成策略为uuid 二.easyUI - combobox下拉框的使用 1.静态页面编写(并不实用) <select class="easyui-combobox"> <option>小黑</option> <option>小白</option> <option>小红</option> &l

集成Android免费语音合成功能(在线、离线、离在线融合)

集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(离线)集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(离在线融合) 转眼间,大半年没写文章了,没什么理由,就是人变懒了.囧~ 看标题,其实大家都被骗了,有这一篇文章还不够,我其实是打算分3篇文章来写的,如果合在一章里面就太长了,不过现在这个标题党横行的网络世界,我也被污染了,哈.那么为什么要分3篇文章来讲呢?看标题也能猜到了,就是在线.离线.离在线融合这3种语音合成方式,我将分别使

跟陈湾来完善C++(2), 添加属性功能

上面几篇文章中,我们添加了名称空间优化,添加事件功能.这些对我来说其实已经够了.但还可以加一个属性功能. 当我们在C++中更改一个属性时,平常都是Get函数加上Set函数,但是这样,没有直接写一个成员变量方便.例如: a.SetValue(a.GetValue() + 1); 没有 a.Value = a.Value + 1; 方便. 但是这种方便只有在调用有属性功能的对象时才能使用.在创建属性的时候我还是用老套路,写一个Get和Set函数,该干啥还是干啥.我的属性功能其实就是在类中添加一个共有