1、HTTP协议
1.1、两种协议简介
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。
TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。
1.2、工作原理
HTTP:HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
一次完整的TCP通讯包括:建立连接、数据传输、关闭连接
建立连接(三次握手):
TCP:客户端通过向服务器端发送一个SYN来建立一个主动打开,作为三路握手的一部分。
服务器端应当为一个合法的SYN回送一个SYN/ACK。
最后,客户端再发送一个ACK。这样就完成了三路握手,并进入了连接建立状态。
数据传输:
发送数据端传输PSH数据包
接收数据端回复ACK数据包
关闭连接(四次分手):
一端主动关闭连接。向另一端发送FIN包。
接收到FIN包的另一端回应一个ACK数据包。
另一端发送一个FIN包。
接收到FIN包的原发送方发送ACK对它进行确认。
1、抓包实验
1.1、Wireshark抓包
首先打开Wireshark软件,可以看到我们电脑上的接口
然后在菜单栏里选择捕获——>选项,因为我使用的是手机热点上网,即无线网络,所以在弹出的窗口里选择WLAN,然后点击开始,开始抓取网络包
抓取的包数据显示
使用Wireshark时,我们会得到大量的冗余信息,为了找到我们需要的部分,可以进行信息过滤
1.2、进行握手分析
从上面的数据中选取一条进行握手分析
选择追踪流里面的TCP报文就会在该数据上面出现三条Tcp也可能更多,存在重传现象
选择第一条TCP信息,查看第一次握手,同步请求
第二条TCP信息,查看第二次握手,同步请求确认
第三条TCP信息,查看第三次握手,确认请求
1.3、用Fiddler查看返回数据
在浏览器上打开一个网站,然后刷新一下,在Fiddler就可以看到打开的网站域名
然后在接收端,点击json格式,就可以看到接受的数据了