HTTP三次握手四次挥手简记
HTTP是一个简单的
请求-响应模式
的协议。中文名称是超文本传输协议,主要作用就是规定浏览器与服务器之间如何通信以及请求响应数据包的格式。HTTP协议是基于TCP/IP协议基础之上进行的,并且HTTP协议是
应用层
协议。TCP是一种
面向连接
的、可靠安全
的、基于字节流的传输层协议。TCP中文名称是传输控制协议。属于传输层协议。
HTTP的三次握手、四次挥手,也可以认为是TCP的三次握手、四次挥手。
1.三次握手(建立连接的过程)
第一次:
浏览器发送
SYN给服务器,请求和服务器建立连接。第二次:
服务器接收
到SYN码后,发送SYN+ACK码给浏览器,告诉浏览器已建立连接。第三次:
浏览器接收
ACK码,验证是否正确,若正确是建立数据连接,可以进行数据传输。
2.四次握手(断开连接的过程)
第一次:
浏览器发送
FIN码给服务器,告诉服务器,数据传输完成。第二次:
服务器
接收到FIN码,然后发送ACK码给浏览器,告诉浏览器,你可以断开连接。第三次:
服务器继续发送
FIN+ACK码,告诉浏览器我的数据发送完毕。第四次:
浏览器接收
到FIN+ACK码之后,同样会发送ACK码给服务器,告诉服务器,我已接收到,你可以断开连接。
3.为什么是三次握手,四次挥手
三次握手是为
防止浏览器建立连接失败
,从而导致服务器建立了无效的连接,造成系统的开销。四次握手,第二次服务器接收到FIN码,服务器需要准备数据,此时服务器可能还有数据要接收,所以先发送了ACK码给浏览器,告诉浏览器,我已知晓你的断开连接请求,服务器接收完数据之后,再次发送FIN+ACK码,告诉浏览器,数据接收完毕,可以断开连接。