charles的简单使用
一、charles简介
正常情况下,Chrome DevTool已经满足了日常web开发的需求,但是有的特性:编辑request参数、重定向request请求资源、编辑response数据,使用ChromeDevTool就感觉力不从心啦,而且查看和调试移动端资源时候Chrome也并不好用。
使用charles可以做这些事情:
- 抓取 http 和 https 的请求和响应,这是最常用的。
- 重发网络请求,方便后端调试。
- 修改网络请求参数(客户端向服务器发送的时候,可以修改后再转发出去)。
- 网络请求的截获和动态修改。
- 支持模拟慢速网络,主要是模仿手机上的2G/3G/4G的访问流程。
- 支持本地映射和远程映射,比如你可以把线上资源映射到本地某个文件夹下,这样可以方便的处理一些特殊情况下的bug和线上调试(网络的css,js等资源用的是本地代码,这些你可以本地随便修改,数据之类的都是线上的环境,方面在线调试)。
- 可以抓手机端访问的资源(如果是配置HOST的环境,手机可以借用host配置进入测试环境)。
二、安装
三、配置
charles可以免费试用30天,强烈支持购买正版软件,现在使用的版本4.2.7
四、视图
方法一:Charles 提供两种查看抓包的视图,分别名为Sequence 和 Structure
Sequence/序列视图,
将网络请求按访问的时间排序,按照你的电脑的发送请求顺序进行。Structure/结构视图,将网络请求按访问的域名分类,比如某个域名下有n个资源请求,那么所有此域名下的请求都会在这里做一个详细的分类
有时候请求多了会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。
除此上面的方法之外,也可以修改Include的域名和端口。
- 方法二:在 Charles 的菜单栏选择 “Proxy”->”Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了;
通常情况下,我们使用方法一做封包过滤,方法二做一些唯一的域名抓包。
方法三:过滤焦点域名
在目标的网络请求上右键,选中focus(此时,该域名已经被设置为一个焦点标记了),然后点击fillter后面的focused来筛选你的做的focus标记文件。
这种方法是抓取特定的网络请求,你设置的焦点域名在”focused Hosts”里面可以查看和管理。
这种模式下的展现更加人性化,当你设置某个域名为焦点域名的时候,会把当前域名单独显示在上面,而其它的非焦点域名,都会在other Hosts里显示。
五、界面
Contents是最常用的一个标签,其中上半部分是请求,下半部分是响应:请求部分中,会根据请求的内容,而分为很多项,比如如果是表单提交,还会有form的选项供你查看提交的内容(表格图形化的方式),最后一项”Raw”是未经处理的请求信息,可以理解为,raw左侧的所有项目都是对raw信息的拆分和美化,以便直观查看。
六、Proxy
charles有强大的代理功能,总的来看大概可以分为5大块:
常用功能开关区
1
2
3stop/start recording 开始/暂停记录
stop/start throttling 开始/暂停节流
enable/disable breakpoints 启用/禁用断点常用功能设置区
1
2
3recording settings 记录设置
throttle settings 节流设置
breakpoint settings 断点设置反向代理和端口转发区域
1
2reverse proxies 反向代理
port forwarding 端口转发)
))charles的代理身份配置区域
1
macOS Proxy 开启整个系统通过charles作为代理
)
)常用的高级设置区
1
2
3
4
5proxy setting 代理设置
ssl proxy setting ssl代理设置
access control setting 访问控制设置
extornal proxy setting 外部代理设置
web interface setting Web界面设置