[转]charles抓包,这一篇就够了,测试工程师基本功-菜单说明
原文连接:
一、介绍
Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,其允许开发者查看所有连接互联网的HTTP通信,包括request,response和HTTP headers(包含cookies与caching信息)。
主要功能:
- 支持SSL代理,可以截取分析SSL的请求/响应。
- 支持流量控制,可以模拟慢速网络以及等待时间(latency)较长的请求。
- 支持AJAX调试,可以自动将json或xml数据格式化,方便查看。
- 支持AMF调试,可以将FlashRemoting或Flex Remoting信息格式化,方便查看。
- 支持重发网络请求,方便后端调试。
- 支持修改网络请求参数。
- 支持网络请求的截获并动态修改。
- 检查HTML,CSS和RSS内容是否符合W3C标准。
二、安装
官网下载地址:https://www.charlesproxy.com/download/
Charles是用java开发的,支持在Windows,Mac,Linux上安装使用。安装过程无序赘述。
三、视图界面说明
功能菜单
Charles
About Charles —— 关于charles Preferences —— 偏好设置 Services —— 服务 Hide Charles —— 隐藏charles Hide others —— 隐藏其他 Show all —— 显示所有 Quit Charles —— 退出Charles
File 文件
New session —— 新建会话 Open session —— 打开会话 Clear session —— 清除会话内容和🧹🧹扫把图标功能一样 Close session —— 关闭会话 Save session —— 保存会话 Save session As —— 会话另存为 Import... —— 导入 Export session —— 导出
Edit 编辑
Cut —— 剪切 Copy —— 复制 Paste —— 粘贴 Select All —— 选择全部 Find... —— 查找 Find Next —— 查找下一个 Find Previous —— 查找上一个
View 视图
Structure —— 结构视图 Sequence —— 序列视图 Overview —— 概观 Request —— 请求 Response —— 响应 Summary —— 概括 Chart —— 图标 Notes —— 备注 View request as —— 将请求视为 View response as —— 将响应视为 Highlight rules —— 突出显示规则 Focused hosts —— 专注主机 Viewer mappings —— 查看映射器 Protobuf settings —— 序列化结构数据方法设置
Proxy 代理
Stop recording(session 1 —— 停止记录会话 Stop SSL Proxying —— 停止SSL代理 Start throttling —— 开始节流 Enable breakpoints —— 启用断点 Recording settings —— 记录会话设置 SSL proxying settin —— SSL代理设置 Throttle settings —— 节流设置 Breakpoint settings —— 断点设置 Reverse proxyies settings —— 反向代理设置 Port forwarding settings —— 端口转发 macOS proxy —— macOS代理 Proxy settings —— 代理设置 DNS settings —— DNS设置 Access control settings —— 访问控制设置 External proxy settings —— 外部代理设置 External DNS resolver settings —— 外部 DNS 解析器设置 Web interface settings —— 网页界面设置
Tools 工具
No caching —— 禁用缓存 Block cookies —— 禁用cookie Map remote —— 本地映射 Map local —— 远程映射 Rewrite —— 重写 Block list —— 黑名单 Allow list —— 白名单 DNS spoofing —— DNS欺骗 Mirror —— 镜像设置 Auto save —— 自动保存 Client process —— 客户端进程设置 Compose —— 编辑修改 Compose new —— 编辑新的 Repeat —— 重复发包 Repeat advanced —— 高级重复发包 Validate —— 验证 Publish gist —— 发布重点 Import/export settings —— 导入/导出设置 Profiles —— 配置文件 Publish gist settings —— 发布重点设置
Window 窗口
Session —— 会话列表 Error log —— 错误日志 Active connections —— 正在进行访问的链接(可通过这里查看charles是否工作) Toggle full screen —— 切换全屏
Help 帮助
Registered to https://zhile.io —— 登陆charles Unregister charles —— 注销charles About java —— 关于java Local IP address —— 本地ip地址 SSL proxying —— SSL代理 Install Charles root certificate —— 安装Charles根证书 Install charles root certificate in IOS simulators —— 在 IOS 模拟器中安装 charles 根证书 Install charles root certificate in java VMs —— 在 java VM 中安装 charles 根证书 Install Charles root certificate on a mobile device or browser —— 在移动设备或远程浏览器上安装Charles证书 Save charles root certificate —— 保存charles根证书 Export charles root certificate and private key —— 导出Charles根证书和私钥 View generated SSL certificates keystore password —— 查看生产的SSL证书密钥和存储密码 Check for updates —— 检查更新 Visit website —— 访问网站
界面
功能
1、点击Proxy——>选中macOsproxy,即可开始抓取浏览器请求。charles开启代理后,之前设置的代理会被强制修改成charles的。
2、charles安装根证书,点击Help——>SSL Proxying——>install Charles Root Certificate
如遇到无法导入证书,可先下载pem证书(http://chls.pro/ssl),点击安装,进入macOS系统的密钥串访问,双击刚安装的charles证书选择使用此证书时:始终信任。设置SSLProxying Settings——>Host:*|Port:443;这样抓取的https请求,contents就不存在乱码问题了。
3、Structure(结构视图),按访问域名分类;某个域名下有多个资源请求,所有此域名下的请求都会详细的分类。
Sequence(序列视图),按访问的时间分类,按照发送请求顺序。
过滤内容:
3.1、Filter功能,可输入关键字对URL进行过滤。
3.2、修改Include的域名和端口,点击Proxy——>Recording Settings,选择include,添加,填入要监控的通信协议,主机地址,端口号。这样就可以只截取添加的目标网址的包。
3.3、过滤焦点域名,在目标域名上右键选中focus,这就设置了一个焦点标记,其他域名请求在OtherHosts里,焦点域名在最上方展示,便于查看。设置的焦点域名在View——>Focused Hosts 管理;
4、在移动端安装ssl证书,Install Charles root certificate on a mobile device or browser
客户端需与charles服务端在同一网络环境,代理设置为charles服务端ip:8888
Ios:在浏览器里输入chls.pro/ssl,提示下载证书;在设置-通用-描述文件,点信任;再到设置-通用-关于本机-证书信任设置,选择打开。
Android:在浏览器里输入chls.pro/ssl,提示下载证书;在设置-安全-凭据存储-从存储设备安装证书-CA证书-选择下载的证书进行安装,安装成功后就可在信任的证书中看到用户安装已安装的证书。
5、map local(映射到本地文件)功能,目的是修改某个接口的返回信息。
可通过修改数据库中该接口的数据;
可通过maplocal功能映射本地文件。
首先确定接口返回的数据格式及内容,可通过接口文档获取或是抓包查看respones,保存到本地。
在接口上右键选择MapLocal,选择本地的映射文件。
6、Breakpoints功能,选中请求,右键,选中breakpoints,可以修改request或者response。
7、Repeat advanced功能,选中请求,右键,选中repeatadvanced,如图是设置4个并发请求,共请求20次。
8、慢网络设置,proxy-throttle setting。设置过慢网络,可通过小乌龟控制开关,可指定请求。
Bandwidth:带宽(k)带宽,指单位时间能通过链路的数据量。即每秒可传输之位数
Untilistion: 带宽利用率:带宽每秒收到、发送信息的效率
Round-trip latency: 请求往返延迟(ms),可以用来模拟网络延迟,即一个数据包从用户终端发送到服务器,然后再从服务器返回到终端的来回时间
MTU:最大传输单元,用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小。是包或帧的最大长度,一般以字节记。如果MTU过大,在碰到路由器时会被拒绝转发,因为它不能处理过大的包。如果太小,因为协议一定要在包(或帧)上加上包头,那实际传送的数据量就会过小,这样也划不来。
Reliability:可靠性,可以用来模拟丢包,指被传送的数据包无法通过网络传输到目标服务器或客户端
Stability:稳定性,可以用来模拟网络抖动,指分组延迟的变化程度。如果网络发生拥塞,排队延迟将影响端到端的延迟,并导致通过同一连接传输的分组延迟各不相同,而抖动,就是分组延迟的差值
Unstable quality range:不稳定质量范围,主要针对Stability设置的范围。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示