51Testing软件测试论坛
标题:
带你走进Charles抓包神器的世界中
[打印本页]
作者:
草帽路飞UU
时间:
2022-10-9 16:31
标题:
带你走进Charles抓包神器的世界中
本帖最后由 草帽路飞UU 于 2022-10-9 16:39 编辑
我们在开发网站项目的时候,我们可以通过浏览器的debug模式来看request以及response的数据,那么如果我们开发移动端项目没有网页呢?如何抓取数据呢?
前几天有个做服务端的师弟跟我说他不用抓包工具,遇到问题直接debug代码,那我问他,如果线上服务的话,你怎么调?在实际项目中,没有遇到跟客户端相互扯皮的事情吗?我觉得很正常啊,客户端
说他没问题,服务端也说他没问题,到底谁有问题?这时候没必要相互推脱,拿数据出来说话才是王道。抓包工具做了什么?它把客户端的请求数据,以及服务端返回的数据完完整整的抓取下来,供攻城狮分
析问题。所以首先分析问题才是最重要的,而不是一上来就跟踪代码debug。
[attach]143624[/attach]
Charles
是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,
这些包括request,response和HTTPheaders(包含cookies与caching信息)。
Charles主要功能:
·
支持SSL代理。可以截取分析SSL的请求。
·
支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
·
支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
·
支持AMF调试。可以将FlashRemoting或FlexRemoting信息格式化,方便查看。
·
支持重发网络请求,方便后端调试。
·
支持修改网络请求参数。
·
支持网络请求的截获并动态修改。
·
检查HTML,CSS和RSS内容是否符合W3C标准。
[attach]143625[/attach]
Charles安装:
去Charles的官方网站(
http://www.charlesproxy.com
)下载最新版的相应操作系统的Charles安装包安装即可。
Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时。
因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为Charles强制关闭而遇到影响。(偷偷告诉你,公众号回复
“Charles”获取破解版下载链接)
Charles的功能很强大,我们这里只介绍几个常用的并且非常实用的功能:
1. 将Charles设置成系统代理
2. 截取移动设备上的网络请求包
·
手动重复请求(Repeat,AdvancedRepeat)
·
手动模拟请求(Compose)
·
修改网络请求内容(Compose)
3. 过滤网络请求
4. 代理转发
5. 支持https请求抓包(如果配置了还是抓不到,下面有解决方案)
Charles主要提供两种查看封包的视图,分别名为“Structure”和“Sequence”。
1. Structure视图将网络请求按访问的域名分类。
2. Sequence视图将网络请求按访问的时间排序。
[attach]143626[/attach]
下面将一一介绍这些如何配置和使用:
一.将Charles设置成系统代理
Charles是通过将自己设置成代理服务器来完成抓包的,勾选系统代理后,系统本地发出去的请求都能被截取下来。如果只抓取APP的包的话,可关闭此配置,这样不会出现太多的数据看着比较乱。
Mac:
[attach]143627[/attach]
Windows
[attach]143628[/attach]
需要注意的是,Chrome和Firefox浏览器默认并不使用系统的代理服务器设置,而Charles是通过将自己设置成代理服务器来完成封包截取的,所以在默认情况下无法截取Chrome和Firefox浏览器的网络通讯
内容。如果你需要截取的话,在Chrome中设置成使用系统的代理服务器设置即可,或者直接将代理服务器设置成127.0.0.1:8888也可达到相同效果。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2