水瓶子Charles的基本使用

经常用charles,就想写一个使用说明,在简书上看到了一个写的基本挺全的,也挺明白的。就摘取精华部分过来了。原文地址https://www.jianshu.com/p/68684780c1b0

一、Charles基本工作原理

charles是通过网络代理来进行抓包的,下面先了解一下http代理的原理:

1.普通http请求过程

一般情况下的HTTP请求与响应:

2.加入了Charles的HTTP代理的请求与响应过程

中间的代理服务器就是Charles

二、Charles的下载与安装过程

官网下载地址:http://www.charlesproxy.com/download/

三、Http抓包操作步骤

1:开启Charleshttp代理;

2:手机端Wifi添加代理;

3:开启Charles录制功能;

4:启动应用开始抓包;

5:分析抓取的数据包。

Step 1: 开启Charleshttp代理

第一次启动默认会开启本机的系统代理,因为我们只是监控移动端的所以将此选去除(去掉选项前面的小钩)

第一次启动默认会开启本机的系统代理,因为我们只是监控移动端的所以将此选去除(去掉选项前面的小钩)

设置端口。80/8888/*/443

Step 2: 手机端Wifi添加代理 设置手机为手动。

注意:手机所连接Wifi要与电脑在同一个LAN(局域网)。

Step 3:开启Charles录制功能

1.当手机连接上代理后Charles会弹出相应的提示框,点击Allow即可。2.点击工具栏上的开始录制按钮,即启动了Charles的抓包功能了。

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其实是有两部分组成:HTTP+ SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看图,下面这个图的解说
详细说明,请参考:

http://blog.csdn.net/clh604/article/details/22179907

Step 2:在手机端安装SSL证书

1.将证书文件从Charles导出

2.然后通过adb或者其他工具将其复制到手机的SD卡中。


从Charles导出证书文件

3.将证书文件导入Android手机

在手机的设置界面找到【安全】---》【从内部存储设备或SD卡安装】----》选择SD卡上的证书---》弹出设置证书名对话框,输入一个易记的名字,然后根据提示进行导入即呵。

4.将证书文件导入iOS手机

1.在iPhone手机上打开Safari浏览器,然后在地址栏中输入www.charlesproxy.com/getssl。

2.稍后会弹出安装描述文件提示,点击右上角的【安装】按钮进行证书安装即可。

Step 3:激活Charles的SSL代理

1.选择【Proxy】--->【SSL Proxying Settings..】设置。2.在弹出来的对话框中沟选【Enable SSL Proxying】。

Step 4:将指定的URL请求开启SSL代理功能

1.选择抓取的https链接,然后右键选择【Enable SSL Proxying】。2.如果不激活SSL代理,所以https请求都是乱码无法查看。
再次请求这个Https时,其请求内容已经一目了然了。

六、Charles进阶---修改请求也响应的内容

Step 1:设置Charless断点。

Step 2:对指定的URL开启断点功能。

Step 3:编辑请求与响应的内容。

Step 1:设置Charless断点

选择【Breakpoint Settings…】--->勾选【Enable Breakpoints】来激活断点功能

Step 2:对指定的URL开启断点功能。

1.选择一个URL链接-à右键开启菜单---》选择【Breakpoints】即可开启此请求的断点。2.这样Charles会遇到此请求时会弹出中断对话框。

Step 3:编辑请求与响应的内容。

a.编辑请求内容


在中断对话框中,用户可以点击Edit Request来编辑请求的内容,编辑完成后然后点击【Execute】发出去这个请求给服务端

b.编辑服务器响应的内容


在【Edit Request】对话中点击【Execute】发出请求后,服务端返回来数据后,用户点击【Edit Response】可对响应内容进行编辑完成后然后点击【Execute】发出去这个数据给客户端。

七、Charles进阶---弱网模拟

1.菜单中选择【Proxy】--->【Throttle Settings..】-à激活【Enable Throttling】。

2.在Throttle Configuration设置弱网的参数。

3.以下是各种网制式的速率参考文档:

弱网模拟设置

推荐阅读更多精彩内容

  • 工作中会需要对一些有价值的网页、应用进行数据采集,那么采集前我们会对数据结构进行解析,因最近想采集一款APP的数据...
    嗖嗖説阅读 3,962评论 2 7
  • 一、Charles是什么? 二、为什么是Charles? 为什么要用抓包工具?大家在平常移动App调试测试中是如何...
    竿牍阅读 314评论 0 0
  • 一、Charles是什么? 二、为什么是Charles? 为什么要用抓包工具?大家在平常移动App调试测试中是如何...
    luckydaxian阅读 80,646评论 19 190
  • 1.Charles简介 1.1 Charles是在Mac下常用的网络封包截取工具,在做 移动开发时,我们为了调试与...
    cheer_harry阅读 28,690评论 4 16
  • 清风明月三江口,野田人鱼踏青走。 烛香飘送追远情,淡酒尽洒相思愁。 雷惊蛰虫闹春意,雨润新穗盼秋收。 桃李不言只竞...
    犇流阅读 126评论 0 0
  • 那时候的精致很单纯,无非就是把千年不变的帆布鞋换成高跟鞋,脱下满衣柜的蓝色牛仔裤换成精致的小黑裙,撒开高高绑着的马...
    呜啦啦呜啦阅读 118评论 0 0
  • 第三章:舔食全美商业和金融蛋糕上的奶油的舌头 1807年~1837年(46页-70页) 1.要致富,先“修路”——...
    陈姿依阅读 392评论 6 11
  • 一颜一行阅读 153评论 0 0
  • 今天上完第二节课,老师选了几位学生去打扫卫生。有人帮老师拿东西,老师打扫卫生,我们就写字。下午同学们有的带书有的带...
    轩小豆阅读 82评论 0 0