四层网络模型
- 概述
应用层 —— 传输层 —— 网络层 —— 链路层
应——传——网——链
Websocket/Http —— TCP/UDP —— IP —— 链路层
- HTTP
无连接、无状态
默认端口:80;HTTPS:443。
HTTP请求:请求行(GET、POST);请求头部:Host、User-Agent、Content-Type、Content-Length;空行;请求数据。
HTTP响应:状态行(200 OK);消息报头;空行;响应正文。
- TCP/IP
三次握手:第一次握手是客户端向服务器发起连接;第二次握手是服务器响应客户端的请求,同时发送连接请求(此时可以确定客户端能够正确发送数据、服务器能够正确接收数据,但是还不能确定客户端是否可以正确接收数据、服务器是否能够正确发送数据);第三次握手为客户端收到服务器的连接请求后返回ACK给服务器(此时可以确定客户端可以正确接收数据、服务端可以正确发送数据)。
四次挥手:第一次挥手为客户端主动向服务器发送断开请求;第二次挥手为服务器收到客户端断开请求后向客户端发送ACK,随后客户端接收到ACK,第三次挥手为服务器清理完自己的资源后也向客户端发送断开请求(第二和第三次挥手分两次发送是因为服务器需要一定的时间来清理资源);第四次挥手为客户端收到服务器的断开请求后向服务器发送ACK,然后客户端需要等待2MSL时间后断开连接(所以客户端比服务器晚断开连接),确保服务器收到ACK不会重新发送断开请求,服务器收到客户端的ACK后断开连接。