HTTP/1.0、HTTP/1.1、HTTP/2和HTTP/3之间的主要区别是什么?

127 阅读3分钟

下面是一个表格,展示了HTTP/1.0、HTTP/1.1、HTTP/2和HTTP/3之间的主要区别:

特点HTTP/1.0HTTP/1.1HTTP/2HTTP/3
并发请求不支持并发请求支持有限的并发请求引入多路复用(Multiplexing),支持更高级别的并发请求引入QUIC协议,通过多路复用和UDP传输支持更高级别的并发请求
请求头压缩不支持不支持引入HPACK算法对请求头进行压缩引入QPACK算法对请求头进行压缩
二进制传输不支持不支持使用二进制格式传输数据使用二进制格式传输数据
流控制不支持不支持支持流控制,可以控制每个流的数据传输速率支持流控制,可以控制每个流的数据传输速率
服务器推送不支持不支持引入服务器推送机制,服务器可以主动推送资源给客户端引入服务器推送机制,服务器可以主动推送资源给客户端
连接复用不支持支持持久连接支持多路复用,多个请求可以通过单个连接并行处理支持多路复用,多个请求可以通过单个连接并行处理
安全性不支持引入HTTPS协议,支持加密传输引入HTTPS协议,支持加密传输引入HTTPS协议,支持加密传输
可靠性不支持不支持支持头部压缩、流控制和服务器推送,提升传输的可靠性引入QUIC协议,通过UDP传输提升传输的可靠性
开发复杂性简单对开发者较友好引入了新的概念和协议,对开发者相对复杂依赖QUIC协议,对开发者相对复杂
缓存机制支持简单的请求响应缓存引入了更强大的缓存控制机制,如ETag、Cache-Control等引入了新的缓存机制,如Server Push、Priority等类似HTTP/2,但通过QUIC对底层的传输进行了优化
底层协议基于TCP基于TCP基于TCP或基于TLS的加密传输基于QUIC(Quick UDP Internet Connections)
连接管理每个请求/响应都需要建立和关闭连接引入了持久连接,通过keep-alive头部保持连接通过单个连接并行处理多个请求/响应通过QUIC的连接复用和多路复用进行处理
传输效率每个请求/响应都需要耗费时间来建立和关闭连接,浪费带宽连接复用有助于减少建立连接的开销,并提高传输效率通过多路复用、头部压缩等机制提高传输效率通过QUIC的特性如连接复用、多路复用等提高传输效率
对丢包和延迟的影响对丢包和延迟的恢复较慢。一个请求阻塞可能导致后续请求也受到影响对丢包和延迟的恢复较快。使用流的方式可以并行处理请求对丢包和延迟的恢复较快。使用流的方式可以并行处理请求对丢包和延迟的恢复较快,QUIC通过UDP传输有利于降低延迟和丢包的影响
适用场景简单的Web页面和静态资源大多数Web应用程序复杂的Web应用程序,需要更高的传输效率复杂的Web应用程序,需要更高的传输效率和减少延迟

获取更多面试相关问题可以访问
github 地址: github.com/pro-collect…
gitee 地址: gitee.com/yanleweb/in…