{"name":"HTTP","id":"计算机网络-http-HTTP","content":"# HTTP 协议（升维重构版）\n\n> 定位：**应用层通信协议的能力体系**，而非零散知识点集合。\n\n---\n\n## 一、HTTP 的第一性原理（本质层 · 稳定）\n\n### 1. HTTP 的本质\n\nHTTP 是一种：\n\n* 运行在 **不可靠网络** 之上的\n* 面向 **资源（Resource）** 的\n* **无状态** 的\n* **应用层请求-响应协议**\n\n其核心目标不是“高性能”，而是：\n\n> **在异构网络与异构系统之间，提供一种可演进、可扩展、可中介的资源交换机制。**\n\n---\n\n### 2. HTTP 的核心设计约束\n\nHTTP 的所有设计，均来源于以下不可回避的约束：\n\n1. **网络不可靠**：丢包、延迟、乱序\n2. **参与者不可信**：中间节点大量存在（代理、缓存、网关）\n3. **连接不稳定**：客户端随时消失（浏览器、移动端）\n4. **系统异构**：语言、平台、操作系统完全不同\n5. **长期演进**：协议必须向前兼容\n\n> HTTP 不是为“最优路径”设计，而是为“最坏情况可用”设计。\n\n---\n\n## 二、HTTP 的能力模型（机制层 · 稳定）\n\nHTTP 并非单一能力，而是多个能力的组合体。\n\n### 1. 寻址与资源抽象能力\n\n* **URI**：资源的全局唯一标识\n* **Host / DNS / CDN**：资源的物理定位解耦\n\n> 资源 ≠ 文件\n>\n> 资源是一个**抽象实体**，文件只是其中一种表现形式。\n\n---\n\n### 2. 通信模型能力\n\n* **请求 / 响应模型**\n* 一次请求对应一次响应\n* 明确的消息边界\n\nHTTP 的通信模型天然适合：\n\n* 高延迟网络\n* 人机交互\n* 松耦合系统\n\n---\n\n### 3. 状态管理能力（弥补无状态）\n\nHTTP 天生无状态，但业务需要“连续性”。\n\n解决方案：\n\n* **Cookie**：客户端状态携带\n* **Session**：服务端状态映射\n* **Token**：去中心化状态证明\n\n> 状态并非协议内建，而是**通过约定叠加**。\n\n---\n\n### 4. 缓存能力（性能与稳定性的核心）\n\nHTTP 将缓存视为一等公民：\n\n* **强缓存**：max-age\n* **协商缓存**：ETag / Last-Modified\n* **缓存作用域**：public / private\n\n缓存的本质是：\n\n> **用时间换取可用性与吞吐。**\n\n---\n\n### 5. 安全与信任能力\n\nHTTP 本身不安全，因此引入 TLS：\n\n* 身份认证（证书链）\n* 机密性（加密）\n* 完整性（MAC）\n\nHTTPS 的核心价值是：\n\n> **在不可信网络中建立最小可信通信通道。**\n\n---\n\n### 6. 扩展与演进能力\n\nHTTP 能长期存活的关键：\n\n* Header 可扩展\n* Method 可扩展\n* Status Code 可扩展\n* 中间节点可参与\n\n> HTTP 是一个**为演进而设计的协议**。\n\n---\n\n## 三、HTTP 的协议演进逻辑（问题驱动）\n\n### 1. HTTP/1.x 的根本瓶颈\n\n| 约束        | 后果    |\n| --------- | ----- |\n| 文本协议      | 解析成本高 |\n| 串行响应      | 队头阻塞  |\n| 多连接       | 资源浪费  |\n| Header 冗余 | 带宽浪费  |\n\n---\n\n### 2. HTTP/2：应用层多路复用\n\n核心解法：\n\n* 二进制分帧\n* 多路复用\n* 首部压缩\n* 服务端推送\n\n> HTTP/2 **没有解决 TCP 的队头阻塞问题**。\n\n---\n\n### 3. HTTP/3：传输层重构\n\n基于 QUIC（UDP）：\n\n* 消除 TCP 队头阻塞\n* 连接迁移\n* 0-RTT\n* 用户态拥塞控制\n\n> HTTP/3 本质是：**把传输控制权从内核交给应用层。**\n\n---\n\n## 四、HTTP 之上的架构模式（架构层 · 半稳定）\n\n### 1. 代理 / 网关 / 隧道\n\n* 正向代理：客户端控制\n* 反向代理：服务端控制\n* 网关：协议转换\n* 隧道：透明传输\n\nHTTP 天然支持中介，是其成功的关键。\n\n---\n\n### 2. CDN：分布式缓存体系\n\nCDN 的本质：\n\n> **以缓存为核心的、地理分布式 HTTP 扩展系统。**\n\n能力：\n\n* 加速\n* 防护\n* 协议升级\n* 容灾\n\n---\n\n### 3. REST：资源导向的接口风格\n\nREST 不是规范，而是约束集合：\n\n* 资源\n* 状态转移\n* 统一接口\n* 超文本驱动\n\n适合：CRUD\n不适合：复杂流程编排\n\n---\n\n### 4. 浏览器安全模型（CORS）\n\n同源策略是：\n\n> **浏览器的安全策略，而非 HTTP 的限制。**\n\nCORS 是对浏览器模型的妥协方案。\n\n## 五、边界声明（极其重要）\n\nHTTP **不解决**：\n\n* 业务一致性\n* 事务\n* 强实时性\n* 复杂流程\n\nHTTP **擅长**：\n\n* 松耦合\n* 可缓存\n* 可中介\n* 跨系统通信\n\n---\n\n## 六、总结：一张认知地图\n\n> HTTP = 约束之下的能力组合\n\n* 本质：资源交换协议\n* 方法：无状态 + 约定补偿\n* 成功原因：中介友好 + 可演进\n\n## 关联内容（自动生成）\n\n- [/计算机网络/应用层.md](/计算机网络/应用层.md) HTTP协议是应用层最重要的协议之一，与应用层协议的其他内容密切相关\n- [/计算机网络/http/爬虫/反爬虫.md](/计算机网络/http/爬虫/反爬虫.md) 反爬虫技术基于HTTP协议实现，包括对HTTP头、请求模式等的检测和限制\n- [/计算机网络/网络安全/认证与授权.md](/计算机网络/网络安全/认证与授权.md) 涉及HTTP认证机制，包括基本认证、摘要认证等安全相关内容\n- [/计算机网络/网络安全/Web安全.md](/计算机网络/网络安全/Web安全.md) 涉及HTTP相关的安全威胁和防护措施，如XSS、CSRF等\n- [/中间件/web中间件/Nginx.md](/中间件/web中间件/Nginx.md) Nginx是HTTP协议的重要实现，提供了反向代理、负载均衡等功能\n- [/中间件/web中间件/Tomcat.md](/中间件/web中间件/Tomcat.md) Tomcat处理HTTP协议，是Java Web应用服务器的代表\n- [/软件工程/架构/Web前端/Web前端.md](/软件工程/架构/Web前端/Web前端.md) 前端与HTTP协议紧密相关，包括缓存、协议优化等内容\n- [/软件工程/架构/Web前端/前后端分离.md](/软件工程/架构/Web前端/前后端分离.md) 前后端分离依赖HTTP协议进行通信，涉及RESTful API设计、CORS跨域等问题\n- [/编程语言/JAVA/高级/Servlet.md](/编程语言/JAVA/高级/Servlet.md) Servlet规范定义了HTTP请求处理的标准接口，是Java Web开发的基础\n- [/计算机网络/http/Cookie&Session.md](/计算机网络/http/Cookie&Session.md) HTTP协议的无状态特性催生了Cookie和Session等状态管理机制\n- [/软件工程/架构/系统设计/网关.md](/软件工程/架构/系统设计/网关.md) 现代网关系统处理HTTP协议，提供路由、认证、限流等功能\n- [/计算机网络/多媒体网络.md](/计算机网络/多媒体网络.md) 介绍基于HTTP的流媒体协议，如DASH等自适应流媒体技术\n- [/计算机网络/物联网.md](/计算机网络/物联网.md) 讨论HTTP协议在物联网中的应用，与轻量级协议CoAP的对比\n- [/中间件/数据库/ElasticSearch.md](/中间件/数据库/ElasticSearch.md) ES提供HTTP接口进行数据操作，是HTTP协议在数据存储领域的应用\n- [/软件工程/架构/系统设计/可观测性.md](/软件工程/架构/系统设计/可观测性.md) 系统监控中大量使用HTTP请求指标来衡量系统健康状况\n","metadata":"tags: ['网络', '协议设计', 'web架构']\nbooks: [\n  {name: '计算机网络:自顶向下方法'}\n]\nlinks: [\n  'https://icyfenix.cn/architect-perspective/general-architecture/diversion-system/cdn.html'\n]","hasMoreCommit":true,"totalCommits":36,"commitList":[{"date":"2026-03-02T10:15:03+08:00","author":"MY","message":"docs(SUMMARY): 更新文档目录结构并调整章节组织","hash":"291401ad85fb2dca108efed36ead29f7bbfe5ed8"},{"date":"2026-02-12T14:07:03+08:00","author":"MY","message":"doc: 整理标签","hash":"290b3e8ad18f48832ac282290238d020fc030a88"},{"date":"2026-01-11T22:44:47+08:00","author":"MY","message":"doc(http): 重构文档","hash":"d6109da6708d9d9d3f2674d95183dda4734b7e3a"},{"date":"2024-11-25T14:06:28+08:00","author":"MY","message":"📦微服务","hash":"984b0cab1bfa9822163a0947a83e9fea875c581a"},{"date":"2024-11-21T19:38:10+08:00","author":"MY","message":"📦流控 & 缓存","hash":"ec18717ffca6c3c8867ce0cf6bbbeff241c19ff8"},{"date":"2024-11-08T16:23:39+08:00","author":"MY","message":"📦计算机网络应用层","hash":"db36530812209177b6a87243dfa274d323a73e82"},{"date":"2024-03-21T19:45:57+08:00","author":"MY","message":"✏Web安全","hash":"d5c0aa6eadac2e53bacd73205dd89ba17c5ed2f8"},{"date":"2023-10-18T16:50:26+08:00","author":"MY","message":"✏HTTP","hash":"0bb35cef1e81c867b90c05c4972a25304df76c45"},{"date":"2023-05-24T16:54:09+08:00","author":"MY","message":"✏计算机网络","hash":"af01305acc7b161960289554184c9a8ebf2c950b"},{"date":"2023-04-21T09:56:47+08:00","author":"MY","message":"📦HTTP","hash":"42bb3b29d1620f03a041d2f4556e2e11a87bd091"}],"createTime":"2019-08-09T12:14:53+08:00"}