简述HTTP1.0、1.1、2.0和3.0之间的区别
HTTP 1.0
无状态、无连接: 每次请求都需要建立新的TCP连接,处理完后立即关闭,导致开销较大。
队头阻塞: 每个请求必须按照顺序依次处理,前面的请求未完成,后面的请求只能等待,降低了并发效率。
不支持持久连接: 每个请求都建立一个新的TCP连接,增加了服务器的负担。
HTTP 1.1
持久连接: 引入了Keep-Alive机制,多个请求可以复用同一个TCP连接,减少了建立连接的开销。
管道化: 允许在同一个TCP连接上同时发送多个请求,提高了并发效率。
Host字段: 可以在同一个IP地址上运行多个虚拟主机。
断点续传: 支持文件传输中断后从断点处继续传输。
HTTP 2.0
二进制分帧: 将HTTP报文分割为更小的二进制帧,提高了传输效率,并支持多路复用。
头部压缩: 减少了HTTP头部的大小,降低了网络开销。
服务器推送: 服务器可以主动向客户端推送资源,减少了客户端的请求次数。
多路复用: 在一个TCP连接上可以同时发送多个请求和响应,解决了HTTP 1.1的队头阻塞问题。
HTTP 3.0
基于QUIC协议: 使用UDP协议,相较于TCP的可靠性,QUIC通过自身实现可靠传输,减少了RTT。
多路复用: 在一个QUIC连接上可以同时传输多个请求和响应,并支持流优先级。
更快的连接建立: 减少了TCP的三次握手和TLS的握手时间。
更低的延迟: 由于QUIC协议的特性,HTTP 3.0具有更低的延迟。
HTTP 1.0、1.1、2.0、3.0的区别
特性 | HTTP 1.0 | HTTP 1.1 | HTTP 2.0 | HTTP 3.0 |
---|---|---|---|---|
连接 | 短连接 | 持久连接 | 持久连接 | QUIC连接 |
传输方式 | 文本 | 文本 | 二进制 | 二进制 |
头部压缩 | 不支持 | 不支持 | 支持 | 支持 |
多路复用 | 不支持 | 部分支持 | 支持 | 支持 |
服务器推送 | 不支持 | 部分支持 | 支持 | 支持 |
标签:
阅读笔记
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升