HTTP/3是HTTP协议的最新版本,它基于QUIC协议,具有以下特点:
无队头阻塞: QUIC 使用UDP
协议来传输数据。一个连接上的多个stream之间没有依赖, 如果一个stream丢了一个UDP包,不会影响后面的stream,不存在 队头阻塞问题。
零 RTT 连接建立:QUIC 允许在首次连接时进行零往返时间连接建立,从而减少了连接延迟,加快了页面加载速度。
在传统的TCP连接中,连接建立通常需要三次握手过程,这个过程至少需要一个往返时间(RTT),在网络延迟较高的情况下,这会导致连接建立的延迟。
HTTP/3在首次连接时,客户端可以直接发送加密的应用程序数据,而不需要等待服务器的确认。
连接迁移:QUIC 允许在网络切换(如从 Wi-Fi 到移动网络)时,将连接迁移到新的 IP 地址,从而减少连接的中断时间。
QUIC使用连接ID而不是IP地址和端口号来标识连接。这意味着即使客户端的IP地址或端口号发生变化,只要连接ID保持不变,服务器就可以识别并继续处理来自客户端的数据。
向前纠错机制:每个数据包除了它本身的内容之外,还包括了部分其他数据包的数据,因此少量的丢包可以通过其他包的冗余数据直接组装而无需重传。向前纠错牺牲了每个数据包可以发送数据的上限,但是减少了因为丢包导致的数据重传。
安全性:HTTP/3默认使用TLS加密,确保了数据传输的安全性。