透过TCPIP看HTTP

发布时间 2023-03-22 21:16:56作者: 想见玺1面

透过TCPIP看HTTP

HTTP协议是构建在TCP/IP协议之上的,是TCP/IP协议的一个子集

为了更好的理解HTTP协议,我们先了解一下TCP/IP的相关知识

TCP/IP协议族:

TCP/IP协议其实是一系列与互联网相关联的协议集合起来的总称

分层管理是TCP/IP协议的重要特征

TCP/IP协议族分层

TCP/IP协议族是由一个四层协议组成的系统,这四层分别为:应用层、传输层、网络层和数据链路层

应用层:

应用层一般是我们编写的应用程序,决定了向用户提供的应用服务。应用层可以通过系统调用与传输层进行通信

如:FTP、DNS、HTTP等

 传输层:

传输层通过系统调用向应用层提供处于网络连接中的两台计算机之间的数据传输功能

在传输层有两个性质不同的协议:TCP和UDP

网络层:

网络层用来处理在网络上流动的数据包,数据包是网络传输的最小数据单位。该层规定了通过怎样路径(传输路线)到达对方计算机,

并把数据包传输给对方

链路层:

链路层用来处理连接网络的硬件部分,包括控制操作系统、硬件设备驱动、NIC(Network Interface Card,网络适配器)以及光纤等

物理可见部分。硬件上的范畴均在链路层的作用范围之内

 

数据包的封装过程

 

发送端发送数据时,数据会从上层传输到下层,且每经过一层都会被打上该层的头部信息。而接收端接收到的数据,数据会从下层传输

到上层,传输前会把下层的头部信息删除

 

传输层——TCP三次握手

使用TCP协议进行通信的双方必须建立连接,让后才能开始传输数据,为了确保连接对方可靠性,在双方建立连接时,TCP协议采用了三次握手策略

第一次握手:

客户端发送带有SYN标志的连接请求报文段,然后进入SYN_SEND状态,等待服务端的确认

第二次握手:

服务端接收到客户端的SYN报文段后,需要发送ACK信息对这个SYN报文段进行确认。同时,还要发送自己的SYN请求的信息,服务端会将上述的信息

放到一个报文段(SYN+ACK报文段)中,一并发送给客户端,此时服务端会进入SYN RECV状态

第三次握手:

客户端接收到服务端的SYN+ACK报文段后,会想服务端发送ACK确认报文段,这个报文段发送完毕后,客户端和服务端都进入ESTABLISHED状态,

完成TCP三次握手