Http版本问题

一、HTTP/1.0:最原始的短连接时代

HTTP/1.0 是早期正式标准化的版本,它的特点非常简单:

  1. 默认短连接每发一个 HTTP 请求,就建立一次 TCP 连接,请求结束立刻断开。请求 1 → 建连 → 传数据 → 断连请求 2 → 建连 → 传数据 → 断连

  2. 效率极低 打开一个网页要加载几十张图片、JS、CSS,就会频繁三次握手 + 四次挥手,延迟极高。

  3. 可手动开启长连接通过请求头:

    复制代码
    Connection: keep-alive

    让 TCP 连接暂时不关闭,供多个请求复用,但不是默认行为

一句话总结:HTTP/1.0 能用,但很慢,连接无法复用,不适合现代复杂网页。


二、HTTP/1.1:统治互联网二十年的王者

HTTP/1.1 是真正大规模使用的版本,直到今天仍有大量系统在跑。它解决了 1.0 的核心痛点。

1. 默认长连接(Keep-Alive)

从 HTTP/1.1 开始,TCP 连接默认不关闭,可以被多个请求复用。不用每次请求都重新建连,大幅减少握手开销。

2. 分块传输编码(Chunked)

服务端不用等数据全部生成完再返回,可以边生成边发。适合大文件、动态内容,避免长时间阻塞。

3. 管道机制(Pipeline)

在同一个 TCP 连接里,客户端可以同时发送多个请求,不用等上一个响应回来再发下一个。

但它有个致命问题:**队头阻塞(Head-of-Line Blocking)**如果第一个请求卡住,后面所有请求都得等。

一句话总结:HTTP/1.1 解决了连接复用问题,但依然受队头阻塞困扰,并发能力有限。


三、HTTP/2.0:现代高性能协议的开始

HTTP/2 不是在 1.1 上小修小补,而是底层重构,性能提升巨大。

1. 二进制协议

HTTP/1.1 是文本协议 ,头信息是文本,数据体可以是文本或二进制。HTTP/2 统一为二进制格式,解析更快、更紧凑、更安全。

2. 完全多路复用(Multiplexing)

这是 HTTP/2 最核心的升级。多个请求 / 响应可以在同一个 TCP 连接里同时传输,互不阻塞。

  • 不用排队
  • 不存在队头阻塞
  • 一个连接就能搞定所有资源

对比:

  • HTTP/1.1:一队人排队过独木桥
  • HTTP/2:宽阔大桥,多车道同时跑

3. 头部压缩(HPACK)

HTTP 是无状态协议,每次请求都要带上 Cookie、User-Agent 等大量重复头信息。HTTP/2 对头部进行压缩,大幅减少传输体积。

4. 服务端推送(Server Push)

服务端可以主动向客户端推送资源,不用等客户端请求。比如浏览器请求 HTML,服务端直接把 CSS、JS 一起推过去,减少请求次数。

一句话总结:HTTP/2 更快、更并发、更省流量、支持服务端推送,是现代网站的标配。


四、一张表看懂三者核心区别

表格

特性 HTTP/1.0 HTTP/1.1 HTTP/2.0
连接方式 短连接(默认) 长连接(默认) 长连接 + 多路复用
数据格式 文本 文本 二进制
并发能力 极差 一般(仍有队头阻塞) 极强(无队头阻塞)
头部数据 无压缩 无压缩 HPACK 压缩
服务端推送 不支持 不支持 支持
传输方式 全部生成后传输 支持分块传输 二进制流传输
  1. 服务器未经请求,主动向客户端发送资源。
相关推荐
sinat_2554878119 小时前
第七部分。介绍MVC(模型-视图-控制器)模式
java·ide·http·tomcat·intellij-idea
齐鲁大虾1 天前
如何彻底解决从公网HTTP页面请求私有HTTP资源跨域问题
网络·网络协议·http
韩曙亮1 天前
【Flutter】Flutter 中的 Android / iOS 特殊配置 ① ( 网络权限配置 | HTTP 明文传输配置 | 应用名称配置 )
android·网络·flutter·http·ios·网络权限
WIZnet1 天前
W55RP20-EVB-MKR 模块 MicroPython 实战 (11):HTTP 协议与 OneNET 平台数据上云
网络·网络协议·http
许彰午1 天前
微服务安全上下文的透明传递——ThreadLocal透传与HTTP头转发的完整链路
安全·http·微服务
触底反弹1 天前
从 Bun 到 DeepSeek:用 TypeScript 构建你的第一个 AI Agent
人工智能·http·typescript
遇事不決洛必達1 天前
【爬虫随笔】深入理解 HTTP/HTTPS 协议、接口交互与会话机制
爬虫·网络协议·http·https·session
华山令狐虫1 天前
DBAPI 接入 Milvus 向量数据库:HTTP 执行器参数映射实战
数据库·http·milvus·dbapi
代码中介商2 天前
HTTP 完全指南(最终篇):CORS 跨域资源共享深度详解
网络·网络协议·http
abcefg_h2 天前
HTTP 协议版本演进:从 TCP 连接到 QUIC
网络·网络协议·http