透过TCP/IP看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) 网络适配器,以及光纤等物理可见部分,硬件上的范畴均在链路层的作用范围之内
数据包的封装过程
HTTP数据传输过程
发送端发送数据时,数据会从上层传输到下层,且每经过一层都会被打上该层的头部信息,而接收端节后数据时,数据会从下层传输到上层,传输前会把下层的头部信息删除
传输层--TCP三次握手
使用TCP协议进行通信的双方必须先建立连接,然后才能开始传输数据,为了确保连接双放可靠性,在双方建立连接时,TCP协议采用了三次握手策略
第一次握手
客户端发送带有SYN的连接请求报文段,然后进入SYN_SEND状态,等待服务端的确认
第二次握手
服务端接受到客户端的SYN报文段后,需要发送ACK信息对这个SYN报文段进行确认,同时,还要发送自己的SYN请求信息,服务端会讲上述的信息放到一个报文段(SYN+ACK报文段)中,一并发送给客户端,此时服务端将会进入SYN_RECV状态
第三次握手
客户端接收到服务端的SYN+ACK报文段后,会想服务端发送ACK确认报文段,这个报文段发送完毕后,客户端和服务端都进入ESTABLISHED状态,完成TCP三次握手
标签:HTTP,IP,报文,SYN,TCP,服务端 From: https://www.cnblogs.com/yu3304/p/17278175.html