HTTP的版本做了哪些改动?
HTTP/1.1(1999):
引入了持久化连接(Keep-Alive),允许多个请求和响应共享同一个TCP连接,减少了连接建立的开销。
引入了管道传输(Pipelining),允许在同一个TCP连接上发送多个请求,提高了性能。
引入了缓存机制,包括Cache-Control和其他相关指令,可以对缓存进行更精细的控制。
引入了虚拟主机(Virtual Host),允许在单个服务器上托管多个域名,并根据请求的Host头字段来区分不同的虚拟主机。
HTTP/2(2015):
引入了多路复用(Multiplexing)的能力,允许在同一个TCP连接上同时发送多个请求和响应,提高了并发性能。
使用二进制分帧(Binary Framing)进行数据传输,将请求和响应拆分为多个帧,并进行无序的交错传输,提高了传输效率。
支持服务器推送(Server Push),服务器可以在客户端请求前主动推送资源,提高了性能。
改进了头部压缩机制,减少了传输的数据量。
HTTP/3(正在开发中,处于草案当中):
基于基于UDP的传输协议QUIC(Quick UDP Internet Connections)。
引入了可靠的数据传输机制,解决了UDP丢包的问题。
支持多路复用,减少了网络延迟。
具备快速连接建立和迁移功能。
提升了安全性,通过TLS 1.3进行加密。