跳到主要内容

1. 引言

超文本传输协议 (Hypertext Transfer Protocol, HTTP) 是一种无状态的应用层请求/响应协议, 它使用可扩展语义和自描述消息负载, 以便与基于网络的超文本信息系统进行灵活交互. 本文档是定义称为 "HTTP/1.1" 的协议的七部分规范中的第 2 部分; 这些部分合在一起取代 RFC 2616.

无论资源 (Section 2) 的类型、性质或实现如何, HTTP 都通过表示 (Section 3) 的操作和传输, 为与资源交互提供统一接口.

HTTP 语义包括: 每个请求方法 (Section 4) 所定义的意图, 请求头部字段 (Section 5) 中可能描述的这些语义的扩展, 用于指示机器可读响应的状态码含义 (Section 6), 以及响应头部字段 (Section 7) 中可能给出的其他控制数据和资源元数据.

本文档定义 HTTP 请求和响应语义, 以及提供这些语义的相关头部字段. HTTP/1.1 规范的其他部分定义如何传送消息 (Part 1 - Message Syntax and Routing), 条件请求和缓存控制 (Part 4 - Conditional Requests), 范围请求 (Part 5 - Range Requests), 以及认证 (Part 7 - Authentication).

1.1. 一致性和错误处理

本文档中的关键词 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", 和 "OPTIONAL" 应按 [RFC2119] 中的描述解释.

一致性准则和有关错误处理的考虑事项在 [RFC7230] 的 Section 2.5 中定义.

1.2. 语法记法

本规范使用 [RFC5234] 的增强巴科斯-诺尔范式 (Augmented Backus-Naur Form, ABNF) 记法, 并使用 [RFC7230] Section 7 中定义的列表扩展. 该扩展允许使用 "#" 运算符紧凑地定义逗号分隔列表, 其方式类似于 "*" 运算符表示重复. Appendix B 描述从其他文档导入的规则. Appendix C 展示汇总语法, 其中所有列表运算符都已展开为标准 ABNF 记法.

本规范使用术语 "character", "character encoding scheme", "charset", 和 "protocol element", 其含义按 [RFC6365] 中的定义.