协议定义
1、HTTP
HTTP 是一种用于获取 HTML 文档等资源的协议。它是网络数据交换的基础,也是一种客户端-服务器协议。
2、HTTP/3
HTTP/3 是 HTTP 的下一个重要修订版本。它在 QUIC 上运行。QUIC 是一种新的传输协议,专为移动互联网而设计。它依赖于 UDP 而不是 TCP,这使得网页响应速度更快。VR 应用程序需要更多带宽来迅速呈现虚拟场景的复杂细节,因此迁移到由 QUIC 支持的 HTTP/3 会从中受益。
3、HTTPS
HTTPS 扩展了 HTTP,并使用加密技术实现安全通信。
4、WebSocket
WebSocket 是一种通过 TCP 提供全双工通信的协议。客户端通过建立 WebSocket 从后端服务接收实时更新。与总是 "拉取 "数据的 REST 不同,WebSocket 可以 "推送 "数据。在线游戏、股票交易和消息应用程序等都利用 WebSocket 进行实时通信。
5、TCP
TCP 设计用于在互联网上发送数据包,确保数据和信息在网络上成功传递。许多应用层协议都建立在 TCP 协议之上。
6、UDP
UDP 直接向目标计算机发送数据包,无需先建立连接。UDP 通常用于对时间敏感的通信,因为这种情况下偶尔丢弃数据包比等待更好。语音和视频应用通常使用此协议发送数据。
7、SMTP
SMTP 是一种标准协议,用于将电子邮件从一个用户传输到另一个用户。
8、FTP
FTP 用于在客户端和服务器之间传输计算机文件。它有独立的控制通道和数据通道连接。
协议工作原理动态图
1、HTTP
工作流程:
-
建立连接:客户端通过DNS解析域名→TCP三次握手建立连接(默认80端口)。
-
发送请求:客户端构造HTTP请求报文(含请求行、请求头、请求体),如GET /index.html HTTP/1.1。
-
处理与响应:服务器解析请求→执行业务逻辑→返回响应报文(含状态行、响应头、响应体),如200 OK。
-
连接管理:HTTP/1.1默认复用TCP连接(Connection: keep-alive),非持久连接则关闭TCP(四次挥手)。
2、HTTP/3
工作流程:
-
基于QUIC协议:使用UDP而非TCP传输,避免队头阻塞。
-
快速握手:支持0-RTT连接建立(首次通信即发送数据)。
-
多路复用:单个QUIC连接上并行传输多个独立数据流。
-
连接迁移:网络切换(如WiFi转4G)时无需重建连接。
3、HTTPS
工作流程:
-
TCP连接:客户端与服务器建立TCP连接(443端口)。
-
TLS握手:
服务器发送数字证书(含公钥)→客户端验证证书合法性(CA机构签名)。
客户端生成对称密钥→用公钥加密后发送→服务器用私钥解密获取密钥。
-
加密通信:后续数据通过对称密钥加密传输。
4、WebSocket
工作流程:
-
HTTP升级握手:客户端发送Upgrade: websocket请求→服务器返回101 Switching Protocols响应。
-
双向通信:建立全双工连接后,客户端/服务器可随时主动发送数据帧。
-
连接关闭:任一方发送关闭帧(含状态码)→对方响应后断开。
5、TCP
工作流程:
-
连接建立:
三次握手(SYN→SYN+ACK→ACK)。
-
数据传输:
数据分块为段→附加序列号/校验和。
接收方确认(ACK)→丢失则重传。
-
连接关闭:
四次挥手(FIN→ACK→FIN→ACK)。
6、UDP
工作流程:
-
无连接:直接发送数据报,无需握手或连接状态维护。
-
不可靠传输:无重传、流量控制、拥塞控制,适用实时应用(如视频流)。
7、SMTP
工作流程:
-
建立连接:客户端与邮件服务器TCP连接(25端口)。
-
命令交互:
客户端发送HELO、MAIL FROM→服务器响应250 OK。
指定收件人(RCPT TO)→发送数据(DATA)。
-
连接关闭:发送QUIT命令→服务器确认后断开。
8、FTP
工作流程:
-
控制连接:客户端与服务器建立TCP连接(21端口)→身份验证(USER/PASS)。
-
数据传输:
主动模式:服务器主动连接客户端(20端口)。
被动模式:客户端连接服务器指定端口。
-
命令操作:发送LIST(列目录)、RETR(下载)、STOR(上传)等命令。
-
连接关闭:控制连接发送QUIT终止会话。
协议典型应用图例