1打开Wireshark,点击菜单栏上的“编辑”,选择“偏好设置”,在d出的对话框中,点击“协议”列表,选择“>在抓包分析中,请求失败和响应失败有不同的表现和数据特征。具体可以通过以下几点来判断:
1 请求失败:如果一个请求出现了失败,那么往往会出现一些异常现象,如请求的URL无法打开,或者请求的IP地址不可访问等等。此时可以通过观察返回的请求状态码或者错误代码来判断请求是否成功。一般而言,如果请求的状态码为4xx或5xx等错误状态码,则说明请求失败,具体的状态码与错误代码会给出详细的解释。
2 响应失败:如果一个请求已成功发出,但是却无法获得响应,那么往往是由于连接超时或服务器内部错误等原因导致的。此时可以通过观察相应报文头部的状态码、响应时间等信息来判断响应是否失败。一般而言,如果响应超时、服务器返回的响应状态码为5xx等错误状态码,则说明响应失败。
3 网络异常:除了请求和响应失败之外,还有可能是由于网络异常导致了请求或响应的失败。这种情况下,一般会出现网络连接失败、丢包、延迟等问题,可以通过查看抓包文件中的网络数据包的信息来判断是否存在包丢失、延迟等问题。
总的来说,如果是请求失败,那么可以通过请求状态码和相关的错误代码来判断;如果是响应失败,那么可以通过响应状态码和响应时间等信息来判断;如果是网络异常,则需要观察网络包的相关信息来判断是否存在网络丢包、延迟等故障。本文以App作为例子,实际应用不限于App范围。
大部分场合都可以通过程序调试来定位问题,但有些场景使用抓包来定位接口问题更准确、更方便,如以下场景:
要实现对App的网络数据抓包,需要监控App与服务器交互之间的网络节点,监控其中任意一个网络节点(网卡),获取所有经过网卡中的数据,对这些数据按照网络协议进行解析,这就是抓包的基本原理。
但是中间网络节点,不受我们控制,所以基本无法实现抓包的,只能在客户端和服务端进行抓包。
通常我们监控本地网卡数据,如下图:
本地网络 指的是WIFI的路由,如果直接抓路由器的包还是比较麻烦的,因此我们会在 手机 和 本地路由 之间加一层 代理服务 ,这样只要抓代理服务的网络数据即可:
虽然在 手机 侧也可实现抓包,但和 本地路由 一样,抓包比较麻烦,如果不是没有办法,尽量还是不在手机侧抓包。但是有一种情况必须在手机端抓包,那就是在4G网络情况下:
4G网络状态下如何抓包,以及它的劣势,我们后面章节再细讲。
抓包实际上是分析网络协议的一种过程,尽管繁琐的细节劳动都让抓包工具做了,但我们还是需要了解下基础的网络协议,好帮助我们更好的分析问题。
首先需要了解下经典的OSI七层网络模型,以及每层的作用,其次对TCP、>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)