HTTP各版本

当然可以,下面是对 HTTP 各版本(0.9、1.0、1.1、2、3) 的详细中文总结,包括它们的特点、改进点、适用场景等。


🌐 HTTP 各版本详解

版本 发布年份 是否过时 是否主流
HTTP/0.9 1991 ✅ 是 ❌ 否
HTTP/1.0 1996 ✅ 是 ❌ 否
HTTP/1.1 1997 ❌ 否 ✅ 常见
HTTP/2 2015 ❌ 否 ✅ 主流(Chrome、微信小程序)
HTTP/3 2022 ❌ 否 ✅ 越来越普及(QUIC)

🔢 HTTP/0.9:最初的版本(非常简陋)

GET /index.html

服务器返回纯文本 HTML,一发一收,无状态、无扩展性


🔢 HTTP/1.0:正式版

📌 示例请求:

GET /index.html HTTP/1.0
Host: www.example.com

🔢 HTTP/1.1:主流使用最广的版本

✅ 改进了 1.0 的所有核心问题,被广泛使用至今。

✅ 主要改进:

功能 说明
🔁 持久连接 默认开启 keep-alive,一个 TCP 可复用多个请求
📦 分块传输(chunked) 支持动态内容(如直播)
🧭 Host 字段 支持虚拟主机(多个站点共用 IP)
🕓 缓存控制 Cache-Control, ETag, If-Modified-Since
📛 管道化 理论支持并发请求(但因队头阻塞问题,使用有限)

❌ 存在的问题:


🔢 HTTP/2:二进制、多路复用、压缩

🆕 极大提升性能,是现代浏览器默认支持的主力。

✅ 关键特性:

特性 描述
🔀 多路复用 同一 TCP 连接中并发多个请求,不再阻塞
🧱 二进制帧 所有通信基于“帧”,不再是纯文本
🗜️ 头部压缩(HPACK) 重复 header 被压缩,节省带宽
⬇️ 服务端推送 Server 可以主动推送资源给客户端
✅ 更快加载网页 多个资源同时加载,减少等待时间

📉 缺点:


🔢 HTTP/3:基于 QUIC,真正为现代网络而生

✅ 基于 UDP 的 QUIC 协议,彻底解决 TCP 带来的瓶颈。

✅ 核心优势:

特性 说明
🚀 0-RTT/1-RTT 握手 建立连接极快,比 TLS+TCP 少好几次往返
🔀 无队头阻塞 即使某个请求丢包,其他也不受影响
🔐 内建 TLS 1.3 安全性强,简化加密流程
📦 拆包更灵活 适应移动网络丢包环境(如 4G/5G)

🎯 使用场景:

🔎 支持 HTTP/3 的服务:Google、Facebook、Cloudflare、微信小程序等。


✅ 版本比较总结表格

特性/版本 HTTP/1.0 HTTP/1.1 HTTP/2 HTTP/3
TCP 复用 ✅ 多路复用 ✅(QUIC更优)
请求阻塞 部分解决 ❌ 无阻塞
二进制传输
请求头压缩 ✅(HPACK) ✅(QPACK)
加密支持 ✅(内建 TLS)
连接速度 中等 🚀 非常快(0-RTT)

🤔 我该用哪个版本?


HTTP 状态码含义

200 OK:请求成功,服务器正常返回数据。

301 Moved Permanently:永久重定向,资源已被永久移动到新地址。

302 Found(临时重定向):资源临时移动,客户端仍用原地址访问。

404 Not Found:请求的资源不存在。

500 Internal Server Error:服务器内部错误,无法完成请求。

TCP/IP 模型与 OSI 模型的区别

模型 层数 主要层 特点
OSI 模型 7层 应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 理论模型,层次细
TCP/IP 模型 4层 应用层、传输层、网络层、链路层 实际应用,层次合并,更简单

NAT 穿透与 UDP 打洞

NAT 穿透:使处于 NAT 后的设备可以相互通信。

UDP 打洞:双方同时向对方发送 UDP 包,利用 NAT 维护的映射建立直接通信通道。

TCP 拥塞控制算法细节