简介
Charles相当于一个在客户端和服务器之间的代理(过滤器)
1、当客户端向服务器发起请求的时候,请求先到达charles,然后经过Charles把数据发送给服务器;
注意:此时charles发给服务器的数据,不一定是客户端请求的数据;charles在接到客户端的请求时可以自由的修改数据,甚至可以直接Block客户端发的请求;
2、服务器接收请求后的返回数据,也会先到charles,经过charles过滤后再发给客户端;
同理:客户端接收的数据,不一定就是服务器返回的数据,而是charles给的数据;
一、抓包
PC端和APP端抓包配置
https://zhubangbang.com/charles-https-packet-capture-method-and-principle.html
Charles基本结构介绍
一、file(文件菜单)
特别注意“导入””导出”功能:在和别人沟通的时候很常用,比如你向第三方工具/类库开发人员求助某个功能,或者有BUG怎么避开;
他们一般会让你提供抓包到时候收到的文件,或者应用场景之类的;
你可以导出你捕捉到的信息,发送给别人(类似PS里的PSD源文件),
别人收到后,在charles里打开就可以看到同样的抓包信息了,方便远程分析和交流;
二、edit(编辑菜单)
查找设置:
偏好设置:(有的路径在Charles——Preferences)
视图选项:
启动设置
警告设置
三、view(视图菜单)
基本功能在页面视图点击就能完成:
四、proxy(代理菜单)
4.1 stop/start recording 和 recording settings
注意:这里的开关只是是否记录信息的开关,并不是charles的开关;也就是说如果你stop recording 那么只是界面上不再抓取信息了,charles还是一直会工作的;
如果你想实现,你可以在window菜单喜爱 active connerctions 查看当前活动的连接信息,你访问的时候,这里会一直记录的;
这个功能是和下面的红色图标是一个功能;
recording settings 主要对常见是进行设置
三个选项:限制记录大小;限制记录的历史;显示websocket的设置;
下面的Imporet和export分别的资源的导入和导出,类似PSD文件一样,详细的储存,方面直接导入使用;但是仅仅是储存当前的设置,其实我认为并没有什么鸟用;其它窗口的Imporet和export分别代表当前的配置储存和导出,碰到就不再复述了;
这个Include/包含设置和Exclude设置,可参照下面的过滤域名部分;
如果你因为特殊原因不得不使用这里的设置,那么设置前你一定要清楚,你下次再次进入的时候可能会存在没有记录信息的情况;
同时在include和exclude里设置www.baidu.com ,那么该域名会被屏蔽;
4.2 stop/start throttling 和 throttling settings
模拟网速
对应工具栏的小乌龟
一般选择多少网速就可以了,下面默认即可。注意如果你本身网速快;是限速;如果你网速low,你选个100Mbps的,其实也到不了的;
过滤域名:
1)底部的filter框:
2)“Proxy”->”Recording Settings”,然后选择 Include 栏(包含),Exclude栏(排除)
3) 采用focus
a. 选中域名后右击focus——
b.查看
在structure结构下查看:选中的域名显示在前面,未选中的域名在other Hosts里显示
在sequence结构下查看:点击filter右侧的Focused后,上面就只有在a步中选中的域名出现
更多高级教程查看:https://zhubangbang.com/charlesproxy