关于抓包,首先需要搞清楚:
1、什么是抓包?
2、为什么要抓包?
3、抓包的工作原理?
4、主流的抓包工具有哪些?
1、什么是抓包?
不同主机之间的数据通信都是通过网络来进行传输,对那些在网络上传输的数据(发送、请求的数据)进行截获、编辑、转存等操作叫做抓包。
2、为什么要抓包?
通过对网络上传输的数据进行抓取,可以对其进行分析,对于软件的Debug很大的帮助。
大部分场合都可以通过程序调试来定位问题,但有些场景使用抓包来定位接口问题更准确、更方便,如以下场景:
* 你发送数据给后台,但后台没有收到,可以对接口进行抓包分析,看是后台处理有问题,还是App没有将数据发出去,或是App发送数据格式有误
* 你和后台接口联调测通,但业务数据对不上,你认为是后台问题,后台认为是你发的问题,可以抓包确认问题所在
* 线上App出现bug需要定位,但你没在公司,没有代码可调试,可直接抓包分析
* App页面渲染缓慢,抓包看下接口响应时长,是不是后台出现性能问题
* 需要测试弱网环境下App的体验?抓包工具可设置流量限制,可设置接口堵塞
* 想改变某接口的响应报文?想多次重发某一请求,但App业务流程有限制?可以试试抓包工具提供的功能
3、抓包的工作原理?
要实现对App的网络数据抓包,需要监控App与服务器交互之间的网络节点,监控其中任意一个网络节点(网卡),获取所有经过网卡中的数据,对这些数据按照网络协议进行解析,这就是抓包的基本原理。
但是中间网络节点,不受我们控制,所以基本无法实现抓包的,只能在客户端和服务端进行抓包。
通常我们监控本地网卡数据,如下图:
> 其中手机、本地网络属于客户端侧的抓包,接入设备、服务器属于后台侧的抓包
4、主流的抓包工具
比较常用的抓包工具大概有4个,主要用作互补,配合使用基本所有平台、所有抓包需求都能满足:
* fidder windows平台最受欢迎抓包工具,免费、易用
* charles Mac平台下最佳抓包工具,易于使用,收费软件,可一直试用
* wireShark 老牌抓包工具,跨平台,功能齐全、强大
* tcpdump 命令行程序,适用于手机系统和后台系统
[ tcpdump可将数据保存成文件,直接用wireShark打开分析,针对后台或手机抓包使用起来十分方便。 ]
对于Fiddler的学习:
学习链接如下:
http://blog.csdn.net/ohmygirl/article/details/17846199 fiddler的原理和界面
http://blog.csdn.net/ohmygirl/article/details/17849983 使用fiddler进行抓包分析
http://blog.csdn.net/ohmygirl/article/details/17855031 Fiddler命令行和HTTP断点调试