一、基本设置与界面
1.初次打开
charles是需要破解以后才可以持续使用的。在此附上下载破解文件链接(选择对应版本的破解jar包下载):https://www.zzzmode.com/mytools/charles/
为了让所有浏览器(或者网络应用)的数据送达到charles手中,您必须设置charles为代理服务器,但每次开启或关闭charles后,都要重新配置,如果您想偷点懒,可以在Proxy->Proxy Settings
弹出的对话框中配置行为。
HTTP Proxy:http请求
SOCKS Proxy:socks请求。
Socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以,Socks代理比其他应用层代理要快得多。而浏览网页时的代理服务器通常是http代理。
能浏览网页,不等于一定可以通过Socks访问Internet,socks要比http宽松的多
2.session
charles最重要的功能就是记录,所有的请求和响应都会记录到session中,供大家稍后检查和 分析。打开菜单栏中的File
,在这里可以管理您的session,包括新建,打开,清空等等。
(每次启动charles,都会自动创建一个新的session)
2.1关闭记录,Charles会正常通过所有请求,但它们不会记录在session中,可以点击下面来关闭记录
3.结构视图和顺序视图
两个选择'Structure'和'Sequence'
charles提供了两种显示方式,你可以在view->structure/sequence
中切换,也可以在界面中直接切换
Structure:树图显示
Sequence:时间顺序展示
4.筛选session请求记录
可以通过右键host名,会出现一系列对应的操作,比如保存和对焦
charles:“对焦操作可以让过滤掉没用的信息,比如我只想关注baidu,我可以对http://bd.iegourl.com进行focus,这样那些非百度的host就会被折叠,就会出现下面这样
5.chart
chart主要记录了一个资源的生命周期:从请求到等待到响应请求,不仅如此,它还将相关资源分组,比如下面图
6.SSL
对https抓包,需要安装安全证书Charles Root Certificate,在抓取数据时,你很可能会收到关于证书的警告,那很正常,你只需要信任它即可,如果你想一劳永逸,永久信任Charles Root Certificate的话,你可以按照下面的链接来操作”
信任Charles Root Certificate:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
SSL的工作原理,其实我是中间人,替浏览器查看服务器的证书并签名,但同时会把自己的证书发给浏览器,因此会出现警告,你需要添加到信任序列才能正常使用
7.负载测试
8.弱网测试
charles自带弱网工具,在Proxy->Throttle Settings
下,使用前要记得勾选Enable Throttling
如果你想指定网站,可以勾选下图中的 Only for selected hosts,然后在对话框的下半部分设置中增加指定的hosts项
Throttle Settings 视图中的选项含义如下:
-
Bandwidth:带宽
-
Utilistation:利用百分比
-
Round-trip:往返延迟
-
MTU:字节
9.断点设置
打开Proxy->Breakpoints Settings
,勾选 Enable Breakpoints就可以启用断点模式,选择Add,然后填入需要监控的Scheme、Procotol、Host和Port等信息,这样就达到了设置断点的目的。或者可以在某个想要设置断点的请求网址上右击选择Breakpoints来设置断点
也可以通过选择请求记录,点击右键选择断点
10.反向代理
反向代理就是客户端想访问服务器,他会优先访问代理服务器,当proxy关口拿到用户请求的时候会转发到代理服务器中的随机某一台。而在用户看来,他只是访问了Proxy服务器而已。也就是说,反向代理就是服务器的代理,客户端根本不知道服务器的存在,只知道代理服务器的存在
charles可以在Proxy→Reverse Proxies Settings
找到这个功能,这可是很常用的,特别是对于本地开发且需要域名的情况下
下图意思将本地3306端口映射到www.baidu.com域名的80端口
11.使用手机(需要保持同一网段)
打开Proxy->Proxy Settings
,填入代理端口8888,并勾上 “Enable transparent HTTP proxying” 即完成了代理。(prot可以自己设置没有被占用的端口)
然后在手机wifi网络中添加代理,输入电脑IP和charles的端口号:8880,就可以抓手机上的网络数据了
【抓取https】
charles靠一张证书就解决了加密问题,如果使用的是电脑,按照下面这样安装证书(选择安装到本地计算机受信任的根证书下):
如果使用的是手机:
手机浏览器访问:chls.pro/ssl,下载安装证书即可
二、重定向
Charles 的重定向功能分 Map Remote 和 Map Local 两种,
Map Remote 是将指定的网络请求重定向到另一个网址请求地址
Map Local 是将指定的网络请求重定向到本地文件,下面用一个例子具体说明一下。
mapLocal:
1.先保存接口返回数据
2.对保存到本地的返回数据进行修改,保存
3.设置charles进行map local
4.此时再次请求
在 Charles 的菜单中,选择 “Tools”->”Map Remote” 或 “Map Local” 即可进入到相应功能的设置页面。
Map Remote:
1.设置参数Toos->Map Remote
查看访问结果,你会发现,www.baidu.com会被重定向到www.sougou.com
三、Rewrite功能
Rewrite 功能功能适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。
1.打开Tools->Rewrite
,对内容进行替换,下面把页面中“我的关注”替换为吖咪测试关注
2.再次申请百度
就会展示修改成功以后的内容