标签:常用 webp 证书 解压缩 网络请求 视图 process 产生 影响
Charles 顶部为菜单导航栏,菜单导航栏下面为工具导航栏。视图如下图所示:
Charles 主要提供两种查看封包的视图,分别名为structure 和 sequence。
使用时可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter
功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。
对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是 POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles 可以自动帮你将 JSON 内容格式化,方便你查看。如果响应内容是图片,那么 Charles 可以显示出图片的预览。
Proxy 菜单包含以下功能:
Recording Settings 和 Start/Stop Recording 配合使用,在 Start Recording 的状态下,可以通过 Recording Settings 配置 Charles 的会话记录行为。Recording Settings 的视图如下图所示:
Options
、Include
、Exclude
三个选项卡:
Include
和 Exclude
选项卡的操作相同,选择 Add
,然后填入需要监控的Procotol、Host 和 Port等信息,这样就达到了过滤的目的。如下图所示:
Focus
,然后其他的请求就会被放到一个叫 Other Host
的分类里面,这样也达到了过滤的目的。Throttle Settings 和 Start/Stop Throttling 配合使用,在 Start Throttling 的状态下,可以通过 Throttle Settings 配置 Charles 的网速模拟配置。Throttle Settings 的视图如下图所示:
勾选 Enable Throttling 启用网速模拟配置,在 Throttle Preset 下选择网络类型即可,具体设置可以根据实际情况自行设置。如果只想模拟指定网站的慢速网络,可以再勾选上图中的Only for selected hosts
项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。
Throttle Settings 视图中的选项含义如下:
Breakpoint Settings 和 Enable/Disable Breakpoints 配合使用,在 Enable Breakpoints 的状态下,可以通过 Breakpoint Settings 配置 Charles 的断点模式。Breakpoint Settings 的视图如下图所示:
Add
,然后填入需要监控的Scheme、Procotol、Host 和 Port 等信息,这样就达到了设置断点的目的。然后可以来观察或者修改请求或者返回的内容,但是在这过程中需要注意请求的超时时间问题。或者可以在某个想要设置断点的请求网址上右击选择 Breakpoints 来设置断点。如果想要抓取电脑端的请求,勾选 Windows Proxy 选项即可;如果只需要抓取手机请求,则取消勾选这个选项。
SSL Proxy Settings 的视图如下图所示:
Enable SSL proxying
就完成了在 Charles 上的 SSL 代理设置。之后也可以选择 Add
,然后填入需要监控的 Host 和 Port 信息,这样就达到了针对某个域名启用 SSL 代理的目的。
Access Control Settings 表示访问控制设置。访问控制列表确定谁可以使用此 Charles 实例。通常,您在自己的计算机上运行 Charles,并且您只打算自己使用它,因此 localhost 始终包含在访问控制列表中。也可以选择 Add
,然后填入允许访问的 IP,这样就达到了允许某个 IP 访问 Charles 的目的。
External Proxy Settings 表示外部代理设置。可能在网络上有一个代理服务器,必须使用该代理服务器才能访问 Internet。在这种情况下,需要将 Charles 配置为在尝试访问 Internet 时使用现有代理。
可以配置单独的代理地址和端口:
如果您有 SOCKS 代理,Charles 将把它用于所有非 HTTP(S) 流量,例如端口转发。
Charles 是一个 HTTP 和 SOCKS 代理服务器,所有的请求都会经过 Charles。下面主要介绍 Charles 提供的一些实用工具。Tools 菜单的视图如下图所示:
Tools 菜单包含以下功能:
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。
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。
Map Remote 工具根据配置的映射更改请求站点,以便从新站点透明地提供响应,就好像这是原始请求一样。
通过此映射,您可以从另一个站点提供全部或部分站点。例如:
如果您拥有站点的开发版本并且希望能够通过开发提供的某些请求浏览实时站点,则 Map Remote 非常有用。例如,您可能希望从开发服务器提供 css 和 images 目录。使用 live.com/css/ 等映射到 dev.com/css/ 或 live.com/*.css 到 dev.com 。
/
结尾。Map Local 工具使您可以使用本地文件,就像它们是远程网站的一部分一样。您可以在本地开发文件,并像在线上一样测试它们。本地文件的内容将返回给客户端,就像它是正常的远程响应一样。
Map Local 可以大大加快开发和测试速度,否则您必须将文件上传到网站以测试结果。使用 Map Local,您可以在开发环境中安全地进行测试。
Rewrite 工具允许创建请求和响应在通过 Charles 时修改他们的规则。如:添加或更改头信息、搜索和替换响应内容中的某些文本等。
重写集可以单独激活和停用。每个集合包含站点和规则的列表。这些站点选择规则将要运行的请求和响应。
每个规则都描述了一次重写操作。规则可能会影响请求URL的 Header,正文或部分内容;它可以根据请求或响应来操作;它可以定义搜索、替换或者仅替换样式重写。
以下为将request body中的zoneNumber替换为ZN
Black List 工具允许输入应该被阻止的域名。当 Web 浏览器尝试从被列入黑名单的域名请求任何页面时,该请求将被 Charles 阻止。您还可以输入通配符来阻止其子域名。
Black List 工具允许输入仅仅被允许的域名。Black List 工具将阻止除被列入白名单的域名之外的所有请求。
白名单工具用于仅允许指定的域名;黑名单工具,用于仅屏蔽指定的域名。
如果一个请求与“黑名单”和“白名单”都匹配,则该请求会被阻止。
DNS欺骗,就是把域名解析到一个假的IP上。一般的开发流程中,在上线之前都需要在测试环境中先行进行验证,而此时手机客户端请求的域名是不太容易改变的,可以通过设置 DNS 方式把域名转发到测试机上,通过“Tools”->"DNS Spoofing",进入设置页面
比如要把所有 www.baidu.com 的域名转到 test.com 的服务器上,可以设置如下:
Mirror 工具会在浏览指定站点时,把接收到的响应内容克隆一份,并保存在磁盘上指定的路径下。
保存文件的路径会与浏览站点的目录结构相同,并且 Charles 会为主机名创建一个根目录。文件名从 URL 导出并转换为适合的数据进行保存。查询字符串包含在文件名中。如果收到相同 URL 的两个响应,则后面一个文件会覆盖前面的同名文件,因此保存在镜像中在的响应内容将始终为最新的。
可以为每个请求启用该工具,也可以仅为指定站点启用该工具。当用于选定的站点时,可以使用简单但功能强大的模式匹配将工具的效果限制为指定的主机和/或路径。
如果为请求启用镜像工具,它将导致任何压缩或编码的响应被解码。因此,如果服务器提供了压缩响应,Charles 将在传递给客户端之前对其进行解压缩,这通常不会产生任何影响。但是如果您已经构建了自己的客户端,或者客户端希望得到压缩响应,此时将会产生影响。使用 web 浏览器则没有任何影响。
Auto Save 工具会按设定的时间间隔自动保存清除记录会话。
如果您让 Charles 长时间监控网络活动,并希望将记录分解为可管理的单元,或者避免因数据量过大而可能出现的内存不足情况,这将非常有用。
输入以分钟为单位的保存间隔以及保存会话文件的目录。您可以选择是否在每次运行 Charles 时启动 Auto Save
工具,否则在 Charles 启动时将始终禁用 Auto Save
工具。
会话文件的名称中保存时间戳,格式为 yyyyMMddHHmm
,即年月日时分,以便按字母顺序排序时,它们以正确的顺序显示。
Compose 工具允许在原有的请求基础上修改。(和fiddler相似)
Repeat Advanced 工具扩展了 Repeat 工具,提供了迭代次数和并发数的选项。这对于负载测试非常有用。
Charles 会自动配置浏览器和工具的代理设置,所以说打开工具直接就已经是抓包状态了。只需要保证一下几点即可:
手机抓包的原理,和 PC 类似,手机通过把网络委托给 Charles 进行代理与服务端进行对话。具体步骤如下:
使手机和电脑在一个局域网内,不一定非要是一个 IP 段,只要是在同一个路由器下即可。
电脑端配置:
8888
,不用修改),勾选 Enable transparent HTTP proxying
。手机端配置:
ipconfig
查看本机的 IP 地址。设置好之后,我们打开手机上的任意需要网络请求的程序,就可以看到 Charles 弹出手机请求连接的确认菜单(只有首次弹出),点击 Allow 即可完成设置。
完成以上步骤,就可以进行抓包了。
HTTPS 的抓包需要在 HTTP 抓包基础上再进行设置。需要完成一下步骤:
Enable SSL proxying
。
标签:常用 webp 证书 解压缩 网络请求 视图 process 产生 影响
原文地址:https://www.cnblogs.com/dhs94/p/11674991.html