网络抓包与HTTP协议
一、HTTP协议
简介
HTTP协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。
HTTP 是一种无状态 (stateless) 协议, HTTP协议本身不会对发送过的请求和相应的通信状态进行持久化处理。这样做的目的是为了保持HTTP协议的简单性,从而能够快速处理大量的事务, 提高效率。在许多应用场景中,我们需要保持用户登录的状态或记录用户购物车中的商品。由于HTTP是无状态协议,所以必须引入一些技术来记录管理状态,例如Cookie。
HTTP URL
格式如下:
http://host[":"port][abs_path]
HTTP请求
包括状态行,消息报头,响应正文。
二 网络抓包
抓包原理
要实现对App的网络数据抓包,需要监控App与服务器交互之间的网络节点,监控其中任意一个网络节点(网卡),获取所有经过网卡中的数据,对这些数据按照网络协议进行解析。但是中间网络节点,不受我们控制,所以基本无法实现抓包的,只能在客户端和服务端进行抓包。
抓包原因
-
1.定位网络接口问题
-
2.分析其他App数据接口
-
3.学习网络协议,使用抓包工具分析网络数据更直观
常用抓包工具
比较常用的抓包工具大概有4个,主要用作互补,配合使用基本所有平台、所有抓包需求都能满足:
fidder windows平台最受欢迎抓包工具,免费、易用 charles Mac平台下最佳抓包工具,易于使用,收费软件,可一直试用 wireShark 老牌抓包工具,跨平台,功能齐全、强大 tcpdump 命令行程序,适用于手机系统和后台系统
三、用工具Wireshark进行抓包
Wireshark简介
Wireshark 能获取 HTTP,也能获取 HTTPS,但是不能解密 HTTPS,所以 Wireshark 看不懂 HTTPS 中的内容,总结,如果是处理 HTTP,HTTPS 还是用 Fiddler,其他协议比 如 TCP,UDP 就用 Wireshark。
抓包:
1.打开Wireshark软件
2.点击 捕获
>选项
,开始抓包
3.查看网络状态,打开电脑设置
->网络和Internet
->状态
,可以看见当前网络为`以太网
4.点击以太网双击
5.点击统计
——流量图
勾选限制显示过滤器,流量类选择TCP Flows
抓包分析
1.TCP建立连接的三次握手
2.抓取的内容如下
3.抓取包的信息如下
4.选中以太网首部
,最下面的数据同步显示
5.选中IP首部
,最下面的数据同步显示
6.具体的每个字节展开
7.TCP三次握手分析,以源IP:10.61.31.66
和`目标IP:61.128.154.179为例
(1)客户端发送一个TCP,标志位SYN,序列号为0,客户请求建立连接
(2)服务器返回确认号,标志位为SYN、ACK。确认号设置为ISN+1,即0+1=1
(3)客户端再次发送确认包,SYN标志位为0,ACK标志位为1,并且把服务器发来的ACK的序号字段+1,放在确认字段中发送给对方,并且在数据段写ISN+1。
四 总结
本次实验了解了http协议的原理,了解了TCP三次握手的过程,TCP通过序列号、确认应答等来保证连接的可靠性。抓包实际上是分析网络协议的一种过程,尽管繁琐的细节劳动都让抓包工具做了,但我们还是需要了解下基础的网络协议,好帮助我们更好的分析问题。
五 参考链接
网络抓包与HTTP协议_一只特立独行的猪️的博客-CSDN博客