水瓶子Charles的基本使用
经常用charles,就想写一个使用说明,在简书上看到了一个写的基本挺全的,也挺明白的。就摘取精华部分过来了。原文地址https://www.jianshu.com/p/68684780c1b0
一、Charles基本工作原理
charles是通过网络代理来进行抓包的,下面先了解一下http代理的原理:
1.普通http请求过程
一般情况下的HTTP请求与响应:
![](https://img.haomeiwen.com/i2327528/48722d8553b99de0.png)
2.加入了Charles的HTTP代理的请求与响应过程
![](https://img.haomeiwen.com/i2327528/a5310b3abce9f59b.png)
中间的代理服务器就是Charles
二、Charles的下载与安装过程
官网下载地址:http://www.charlesproxy.com/download/
三、Http抓包操作步骤
1:开启Charleshttp代理;
2:手机端Wifi添加代理;
3:开启Charles录制功能;
4:启动应用开始抓包;
5:分析抓取的数据包。
Step 1: 开启Charleshttp代理
![](https://img.haomeiwen.com/i2327528/91a2016d1ca23038.png)
第一次启动默认会开启本机的系统代理,因为我们只是监控移动端的所以将此选去除(去掉选项前面的小钩)
![](https://img.haomeiwen.com/i2327528/faa0da5558647eaf.png)
设置端口。80/8888/*/443
Step 2: 手机端Wifi添加代理 设置手机为手动。
注意:手机所连接Wifi要与电脑在同一个LAN(局域网)。
Step 3:开启Charles录制功能
![](https://img.haomeiwen.com/i2327528/fb506210dc91714b.png)
Step 5:分析抓取的数据包
四、视图
1.Charles 主要提供两种查看封包的视图,分别名为 “Structure”和 “Sequence”:
a.Structure 视图将网络请求按访问的域名分类;
b.Sequence 视图将网络请求按访问的时间排序。
五、Https抓包操作步骤
Step 1:了解一下https的基本原理;
Step 2:在手机端安装SSL证书;
Step 3:激活Charles的SSL代理;
Step 4:将指定的URL请求开启SSL代理功能
Step 5:其他步骤与Http抓包相同,请参考四、Http抓包操作步骤
Step 1:了解一下https的基本原理;
![](https://img.haomeiwen.com/i2327528/846818e091a616cb.png)
HTTPS其实是有两部分组成:HTTP+ SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看图,下面这个图的解说
详细说明,请参考:
http://blog.csdn.net/clh604/article/details/22179907
Step 2:在手机端安装SSL证书
1.将证书文件从Charles导出
2.然后通过adb或者其他工具将其复制到手机的SD卡中。
![](https://img.haomeiwen.com/i2327528/e047ba31fd769693.png)
从Charles导出证书文件
3.将证书文件导入Android手机
![](https://img.haomeiwen.com/i2327528/adb197fcbcc3afec.png)
在手机的设置界面找到【安全】---》【从内部存储设备或SD卡安装】----》选择SD卡上的证书---》弹出设置证书名对话框,输入一个易记的名字,然后根据提示进行导入即呵。
4.将证书文件导入iOS手机
1.在iPhone手机上打开Safari浏览器,然后在地址栏中输入www.charlesproxy.com/getssl。
2.稍后会弹出安装描述文件提示,点击右上角的【安装】按钮进行证书安装即可。
Step 3:激活Charles的SSL代理
![](https://img.haomeiwen.com/i2327528/d69cf0feddcb0445.png)
1.选择【Proxy】--->【SSL Proxying Settings..】设置。2.在弹出来的对话框中沟选【Enable SSL Proxying】。
Step 4:将指定的URL请求开启SSL代理功能
![](https://img.haomeiwen.com/i2327528/6e13cb8fe12d52de.png)
![](https://img.haomeiwen.com/i2327528/33571c901fea867d.png)
六、Charles进阶---修改请求也响应的内容
Step 1:设置Charless断点。
Step 2:对指定的URL开启断点功能。
Step 3:编辑请求与响应的内容。
Step 1:设置Charless断点
![](https://img.haomeiwen.com/i2327528/3c9b94f84ddbf1db.png)
Step 2:对指定的URL开启断点功能。
![](https://img.haomeiwen.com/i2327528/318cafd35ac2069b.png)
Step 3:编辑请求与响应的内容。
a.编辑请求内容
![](https://img.haomeiwen.com/i2327528/9a5bf8fa59dbc0a1.png)
b.编辑服务器响应的内容
![](https://img.haomeiwen.com/i2327528/6877db31db07dd36.png)
七、Charles进阶---弱网模拟
1.菜单中选择【Proxy】--->【Throttle Settings..】-à激活【Enable Throttling】。
2.在Throttle Configuration设置弱网的参数。
3.以下是各种网制式的速率参考文档:
![](https://img.haomeiwen.com/i2327528/4e0677e8f9207856.png)