跳到主要内容

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. 目的
    • 1.2. 历史和演进
    • 1.3. 核心语义
    • 1.4. 本文档废弃的规范
  • 2. 一致性

    • 2.1. 语法表示法
    • 2.2. 要求表示法
    • 2.3. 长度要求
    • 2.4. 错误处理
    • 2.5. 协议版本
  • 3. 术语和核心概念

    • 3.1. 资源
    • 3.2. 表示
    • 3.3. 连接, 客户端和服务器
    • 3.4. 消息
    • 3.5. 用户代理
    • 3.6. 源服务器
    • 3.7. 中间方
    • 3.8. 缓存
    • 3.9. 消息交换示例
  • 4. HTTP 中的标识符

    • 4.1. URI 引用
    • 4.2. HTTP 相关 URI Scheme
    • 4.3. 权威访问
  • 5. 字段

    • 5.1. 字段名
    • 5.2. 字段行和组合字段值
    • 5.3. 字段顺序
    • 5.4. 字段限制
    • 5.5. 字段值
    • 5.6. 定义字段值的通用规则
  • 6. 消息抽象

    • 6.1. 定帧和完整性
    • 6.2. 控制数据
    • 6.3. 头字段
    • 6.4. 内容
    • 6.5. 尾字段
    • 6.6. 消息元数据
  • 7. HTTP 消息路由

    • 7.1. 确定目标资源
    • 7.2. Host 和 :authority
    • 7.3. 入站请求路由
    • 7.4. 拒绝误导请求
    • 7.5. 响应关联
    • 7.6. 消息转发
    • 7.7. 消息转换
    • 7.8. Upgrade
  • 8. 表示数据和元数据

    • 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. 方法

    • 9.1. 概述
    • 9.2. 通用方法属性
    • 9.3. 方法定义
  • 10. 消息上下文

    • 10.1. 请求上下文字段
    • 10.2. 响应上下文字段
  • 11. HTTP 认证

    • 11.1. 认证方案
    • 11.2. 认证参数
    • 11.3. Challenge 和响应
    • 11.4. 凭据
    • 11.5. 建立保护空间 (Realm)
    • 11.6. 向源服务器认证用户
    • 11.7. 向代理认证客户端
  • 12. 内容协商

    • 12.1. 主动协商
    • 12.2. 响应式协商
    • 12.3. 请求内容协商
    • 12.4. 内容协商字段特性
    • 12.5. 内容协商字段
  • 13. 条件请求

    • 13.1. 前置条件
    • 13.2. 前置条件求值
  • 14. 范围请求

    • 14.1. 范围单位
    • 14.2. Range
    • 14.3. Accept-Ranges
    • 14.4. Content-Range
    • 14.5. Partial PUT
    • 14.6. multipart/byteranges 媒体类型
  • 15. 状态码

    • 15.1. 状态码概述
    • 15.2. 信息性 1xx
    • 15.3. 成功 2xx
    • 15.4. 重定向 3xx
    • 15.5. 客户端错误 4xx
    • 15.6. 服务器错误 5xx
  • 16. 扩展 HTTP

    • 16.1. 方法可扩展性
    • 16.2. 状态码可扩展性
    • 16.3. 字段可扩展性
    • 16.4. 认证方案可扩展性
    • 16.5. 范围单位可扩展性
    • 16.6. 内容编码可扩展性
    • 16.7. Upgrade Token 注册表
  • 17. 安全注意事项

    • 17.1. 建立权威性
    • 17.2. 中间方的风险
    • 17.3-17.16. 各类安全主题
  • 18. IANA 注意事项

    • 18.1. URI Scheme 注册
    • 18.2. 方法注册
    • 18.3-18.10. 其他注册表
  • 19. 参考文献

    • 19.1. 规范性参考文献
    • 19.2. 资料性参考文献

附录


相关资源


理解 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 协议更加统一, 也更易于理解.