Photo on charlesproxy.com
Charles 是在电脑上运行的 Web Proxy (HTTP Proxy / HTTP Monitor)
将 Web 浏览器(或 Internet application)配置为通过 Charles 访问 Internet
然後 Charles 可以透过记录和显示所有发送和接收的数据
在 Web 和 Internet 开发中 无法得知 Client 端与 Server 间发送和接收的内容
但是透过 Charles 的设定就可以轻松查看发生的情况
让调试变得快速且可靠从而节省时间
补充说明:
Charles 是一个收费的软件,虽然可以免费试用,但是每次启动都需要等待 10 秒钟,并且每次使用时间不能超过 30 分钟。因此如果需要长时间进行封包调适时,会因为 Charles 强制关闭而遇到影响。
前往 Charles 的官方网站进行安装
Download a Free Trial of Charles • Charles Web Debugging Proxy
可以依照自己的作业系统进行安装
以下内容将使用 MacOS 做操作分享下载完成後点选档案将其解压缩
就完成安装罗~ ٩ʕ•͡וʔ۶
安装完 Charles 後就可以来看看 Charles 的 GUI 介面了
Charles 选项栏中提供相当多的功能
File, Edit, View, Proxy, Tools, Window, Help
而其中又以 Proxy 与 Tools 内容的功能较为常用
以下将进一步分享 Proxy 中所提供的功能
Start/Stop Recording
开始/停止 捕获请求
Start/Stop SSL Proxying
开始/停止 SSL 代理
Start/Stop Throttling
开始/停止 网速节流
Enable/Disable Breakpoints
开启/关闭 断点
Recording Settings
进一步设定捕获请求的内容
此设定的内容将在 Start Recording 时被执行
可以透过 Import/Export 来汇入汇出设定内容
而其中设定的内容分成了三个
Recording size limits:
可以设定捕获请求的最大限制
当捕获请求超过限制 Charles 将会通知并停止录制
Limit recording history:
可以设定历史捕获请求的最大限制
当历史捕获请求超过限制 Charles 将会自行清除旧的捕获请求
Limit WebSocket transaction history:
可以设定历史 WebSocket 的最大限制
当历史 WebSocket 超过限制 Charles 将会自行清除旧的捕获请求
SSL Proxying Settings
进一步设定 SSL 代理的内容
此设定的内容将在 Start Proxying Settings 时被执行
Charles 将会显示 SSL 请求和回传的纯文本内容
可以透过 Include/Exclude 设定匹配的位址
也可以直接在想要启用 SSL 代理的请求点击右键选择 Enable SSL Proxying
Throttle Settings
进一步设定网速节流的内容 换句话说就是模拟网速
此设定的内容将在 Start Throttle Settings 时被执行
可以透过 Import/Export 来汇入汇出设定内容
"Only for selected hosts" 可以只想模拟指定网站的网速
Breakpoint Settings
进一步设定断点的内容
此设定的内容将在 Enable Breakpoints 时被执行
可以透过 Import/Export 来汇入汇出设定内容
也可以透过 Add 填入需要监控的资讯,就可以达到设置断点的目的了
设定断点後可以用来观察或修改 请求/返回 的内容
也可以直接在想要设定断点的请求点击右键选择 Breakpoints 来设定断点
Reverse Proxies Settings
进一步设定反向代理的内容
可以透过 Import/Export 来汇入汇出设定内容
也可以透过 Add 填入新增反向代理的资讯
反向代理是在 Local 端上创建 Web server
该 server 透明的将请求代理到远程 Web server
反向代理上请求和回传内容都可以被记录在 Charles
如果 Client 端应用程序不支援使用 HTTP 代理或不想配置为使用代理
那就可以透过反向代理 将 Client 应用程序连接到 Local 端
Port Forwarding Settings
进一步设定端口转发的内容
可以透过 Import/Export 来汇入汇出设定内容
也可以透过 Add 填入新增端口转发的资讯
可以将任何 TCP/IP 或 UDP 设为端口转发工具从 Charles 转发到远程主机
在 Macromedia Flash 中调试 XMLSocket 连接时,这特别有用
还可以将 Charles 当作 SOCKS 代理,因此无需设置端口转发
macOS Proxy
开启/关闭 记录电脑上的所有请求
如果想要抓取电脑请求,勾选 macOS Proxy 选项即可
如果只要抓取手机请求,则取消勾选 macOS Proxy 选项
Proxy Settings
进一步设定代理的内容
代理端口预设为 8888 (可以编辑)
勾选 "Use a dynamic port" 可以开启使用动态连接端口
勾选 "Enable transparent HTTP proxying" 就可以在 Charles 上开启代理
Access Control Settings
进一步设定访问控制的内容
可以透过 Import/Export 来汇入汇出设定内容
访问控制列表列出可以使用此 Charles instance
通常是在自己的电脑上运行 Charles 因此 local 始终包含在访问控制列表中
也可以透过 Add 填入允许访问的 IP 来新增 IP 访问 Charles 的权限
External Proxy Settings
进一步设定外部代理的内容
可以透过 Import/Export 来汇入汇出设定内容
如果网路上有个代理服务器必须使用该代理服务器才能访问 Internet
此时就可以将 Charles 配置为在尝试访问 Internet 时使用现有代理
可以配置单独的代理地址和端口:
Web Interface Settings
进一步设定 Web 介面的内容
可以透过 Import/Export 来汇入汇出设定内容
勾选 "Enable the web interface" 来启用 Web 介面
并透过 http://control.charles 来访问 Web 介面
Web 介面可以用来控制 Charles 也可以作为 Web 服务使用外部程序
透过 Web 介面也可以近一步达成自动化 Charles (像是 Selenium)
以上是这周的 Charles 内容
主要分享了安装与选项栏中的 Proxy 功能
下周主要会以选项栏中的 Tools 功能做分享
因为小弟也是新手使用的分享文
所以介绍的内容可能有遗漏或是错误,还请各位大哥大姐提点
小弟将继续往下周迈进。 ─=≡Σ((( つ•̀ω•́)つ
官方网站 (载点)
相关文章
<<: Docker for Mac VPN 直通 Container IP 位址
>>: [鼠年全马] W34 - Vue出一个旅馆预约平台(8)
-ISO 31000 在风险管理社区中,人们普遍认为无法消除风险,并且“没有风险”是不可能的,因为...
前面我们已经介绍完 FlowFiles 了,接下来就是可以一步一步地去建置我们的 Data Pipe...
FormActionTagHelper (窗体操作标记帮助程序) : 其非针对原生HTML任何TAG...
实体关系模型 ( Entity - Relationship Model, E-R Model )是...
引述自100Days of Swift-Class inheritance: The second ...