目录
一、 背景
在开发移动端项目中,在调试前端页面和后台交互的过程中,为了抓取数据进行分析,查看可能出错的地方,可以采用charles抓包。
(在B/S架构的web项目中,在调试前端和后台交互过程中,通常可以在jsp中加入“debuger”断点,然后利用浏览器的F12开发者模式查看可能出错的数据)
二、charles简介
charles是一款http代理服务器和http监视器,它可以查看机器和网络中所有http、ssl/https传输,包括请求,响应和http头(包括cookies和caching信息)。当移动端在无线网连接中按要求设置好代理服务器,使所有对网络的请求都经过Charles客户端来转发时,Charles可以监控这个客户端各个程序所有连接互联网的Http通信。
三、charles重要特征
- SSL代理:查看SSL请求和响应
- 带宽限制:通过带宽限制模拟慢网速(慢网连接)包括延时
- AJAX(Asynchronous Javascript and XML)调试:以树或文本形式查看XML和JSON请求和响应
- AMF:以树形式查看Flash Remoting / Flex Remoting消息的内容
- 截取http和https网络封包
- 支持重发网络请求以测试后端更改
- 编辑请求以测试不同的输入
- 设置断点用于拦截和编辑请求或响应
- 使用W3C验证器验证记录的HTML,CSS和RSS / atom响应
- 自动配置浏览器和系统代理设置
四、charles常用功能简介
structure模式和sequence模式
structure模式:树形结构,以域名划分请求信息,容易定位需要分析和处理的数据;可以清晰查看请求的数据结构。
sequence模式:以数据请求的顺序执行,请求早,响应快的数据排在前面,能够清晰浏览全部请求。- 过滤请求
filter框中输入关键词过滤,将只会展示过滤的关键词相关的请求。
利用focus可以集中关注关心的hosts:在关注的host上右键,选择focus,sturcture将回分为关注的host和other hosts两类。- mock功能
可以通过mock功能修改数据。- 慢网速
在做移动开发的时候,我们常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常(如模拟应用在网络较慢时的响应时间等情景)。- 断点
breakpoints
五、参考文献
- charles官网:https://www.charlesproxy.com/
- charles使用(安装、mock、限速、断点功能):https://blog.youkuaiyun.com/liuwkk/article/details/81258522
- charles Mock测试总结:https://www.jianshu.com/p/03081c9d1559
- Charles可以抓取https报文的原理:https://www.jianshu.com/p/60b2b76b9066
- Charles实用小功能:https://www.jianshu.com/p/4b103721a133
- Charles的HTTPS抓包方法及原理分析:https://www.jianshu.com/p/870451cb4eb0