浏览器与服务器的交互原理解析(二)
一. 关于TCP/IP 协议的三次握手与四次挥手 1. 第一次握手:客户端向服务端发送连接请求报文段,然后,客户端进入等待状态,等待服务器的连接确认;
2. 第二次握手:服务器收到客户端的报文段,在对报文段确认后, 服务器端将服务端数据连接的配置信息放到一个报文段中,一并发送给客户端,此时服务器进入等待状态;
3. 第三次握手:客户端收到服务器返回的报文段后, 向服务器发送连接报文段,这个报文段发送完毕以后,客户端和服务器端都进入建立连接状态,完成TCP三次握手。
完成了三次握手,客户端和服务器端就可以开始传送数据。以上就是TCP的三次握手;
客户端和服务器通过三次握手建立了TCP连接以后,当数据传送完毕,就通过四次挥手断开TCP连接。
1. 第一次挥手:主机1(可以是客户端,也可以是服务器端),向主机2发送一个报文段;此时,主机1进入等待状态;这表示主机1没有数据要发送给主机2了;
2. 第二次挥手:主机2收到了主机1发送的报文段,向主机1回一个报文段,主机1进入第二等待状态;主机2告诉主机1,我“同意”你的关闭请求;
3. 第三次挥手:主机2向主机1发送报文段,请求关闭连接,同时主机2进入待关闭状态;
4. 第四次挥手:主机1收到主机2发送的FIN报文段,向主机2发送报文段,然后主机1进入TIME_WAIT状态;主机2收到主机1的ACK报文段以后,就关闭连接;此时,主机1等待2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,主机1也可以关闭连接了。
好文共享: 大白话理解三次握手和四次分手 二. 具体过程如下图示例
文章图片
三. HTTP报文状态码 报文状态码最全汇总: http报文解析
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 第326天
- Shell-Bash变量与运算符
- 逻辑回归的理解与python示例
- Guava|Guava RateLimiter与限流算法
- 我和你之前距离
- CGI,FastCGI,PHP-CGI与PHP-FPM
- 原生家庭之痛与超越