RFC 9110 - HTTP 语义
- 状态: 互联网标准 (Internet Standard)
- 发布日期: 2022 年 6 月
- 流: IETF
- 更新了: RFC3864
- 废弃了: RFC2818, RFC7230, RFC7231, RFC7232, RFC7233, RFC7235, RFC7538, RFC7615, RFC7694
- 勘误: 无勘误
摘要
超文本传输协议 (Hypertext Transfer Protocol, HTTP) 是一种无状态的应用层协议, 用于分布式, 协作式的超文本信息系统. 本文档定义 HTTP 的语义: 架构, 术语, 请求方法, 响应状态码, 头字段以及相关核心概念.
重要性: 这是最新的 HTTP 核心规范 (2022), 适用于包括 HTTP/1.1, HTTP/2 和 HTTP/3 在内的所有版本.
目录
主要章节
-
- 1.1. 目的
- 1.2. 历史和演进
- 1.3. 核心语义
- 1.4. 本文档废弃的规范
-
- 2.1. 语法表示法
- 2.2. 要求表示法
- 2.3. 长度要求
- 2.4. 错误处理
- 2.5. 协议版本
-
- 3.1. 资源
- 3.2. 表示
- 3.3. 连接, 客户端和服务器
- 3.4. 消息
- 3.5. 用户代理
- 3.6. 源服务器
- 3.7. 中间方
- 3.8. 缓存
- 3.9. 消息交换示例
-
- 4.1. URI 引用
- 4.2. HTTP 相关 URI Scheme
- 4.3. 权威访问
-
- 5.1. 字段名
- 5.2. 字段行和组合字段值
- 5.3. 字段顺序
- 5.4. 字段限制
- 5.5. 字段值
- 5.6. 定义字段值的通用规则
-
- 6.1. 定帧和完整性
- 6.2. 控制数据
- 6.3. 头字段
- 6.4. 内容
- 6.5. 尾字段
- 6.6. 消息元数据
-
- 7.1. 确定目标资源
- 7.2. Host 和 :authority
- 7.3. 入站请求路由
- 7.4. 拒绝误导请求
- 7.5. 响应关联
- 7.6. 消息转发
- 7.7. 消息转换
- 7.8. Upgrade
-
- 8.1. 表示数据
- 8.2. 表示元数据
- 8.3. Content-Type
- 8.4. Content-Encoding
- 8.5. Content-Language
- 8.6. Content-Length
- 8.7. Content-Location
- 8.8. 验证器字段
-
- 9.1. 概述
- 9.2. 通用方法属性
- 9.3. 方法定义
-
- 10.1. 请求上下文字段
- 10.2. 响应上下文字段
-
- 11.1. 认证方案
- 11.2. 认证参数
- 11.3. Challenge 和响应
- 11.4. 凭据
- 11.5. 建立保护空间 (Realm)
- 11.6. 向源服务器认证用户
- 11.7. 向代理认证客户端
-
- 12.1. 主动协商
- 12.2. 响应式协商
- 12.3. 请求内容协商
- 12.4. 内容协商字段特性
- 12.5. 内容协商字段
-
- 13.1. 前置条件
- 13.2. 前置条件求值
-
- 14.1. 范围单位
- 14.2. Range
- 14.3. Accept-Ranges
- 14.4. Content-Range
- 14.5. Partial PUT
- 14.6. multipart/byteranges 媒体类型
-
- 15.1. 状态码概述
- 15.2. 信息性 1xx
- 15.3. 成功 2xx
- 15.4. 重定向 3xx
- 15.5. 客户端错误 4xx
- 15.6. 服务器错误 5xx
-
- 16.1. 方法可扩展性
- 16.2. 状态码可扩展性
- 16.3. 字段可扩展性
- 16.4. 认证方案可扩展性
- 16.5. 范围单位可扩展性
- 16.6. 内容编码可扩展性
- 16.7. Upgrade Token 注册表
-
- 17.1. 建立权威性
- 17.2. 中间方的风险
- 17.3-17.16. 各类安全主题
-
- 18.1. URI Scheme 注册
- 18.2. 方法注册
- 18.3-18.10. 其他注册表
-
- 19.1. 规范性参考文献
- 19.2. 资料性参考文献
附录
相关资源
- 官方文本: RFC 9110
- 官方页面: RFC 9110 DataTracker
- 勘误: RFC Editor Errata
理解 RFC 9110
HTTP 规范的重大重组
RFC 9110 是 2022 年发布的最新 HTTP 核心规范, 它整合并取代了先前的 RFC 7230-7235 系列:
旧规范 (2014):
- RFC 7230 - 消息语法和路由 (Message Syntax and Routing)
- RFC 7231 - 语义和内容 (Semantics and Content)
- RFC 7232 - 条件请求 (Conditional Requests)
- RFC 7233 - 范围请求 (Range Requests)
- RFC 7234 - 缓存 (Caching)
- RFC 7235 - 认证 (Authentication)
新规范 (2022):
- RFC 9110 - 语义 (Semantics) (本文档) ← 核心统一规范
- RFC 9111 - 缓存 (Caching)
- RFC 9112 - HTTP/1.1
- RFC 9113 - HTTP/2
- RFC 9114 - HTTP/3
重要意义
RFC 9110 定义了所有 HTTP 版本共享的语义, 不论使用的是 HTTP/1.1, HTTP/2 还是 HTTP/3. 这使 HTTP 协议更加统一, 也更易于理解.