1. 简介 (Introduction)
1. 简介 (Introduction)
HTTP 中介 (HTTP intermediaries, 参见 [HTTP] 第 3.7 节) 已经成为 HTTP 部署中越来越重要的一部分, 包括正向代理和网关 (也称为"反向代理"). 特别是反向代理和内容分发网络 (Content Delivery Networks, CDN), 已经构成许多网站关键基础设施的一部分.
通常, HTTP 中介会将请求转发给源服务器 (入站方向), 然后再把响应转发回客户端 (出站方向). 但是, 如果在从入站服务器获得响应之前发生错误, 响应通常由中介本身生成.
HTTP 使用少数状态码容纳这类错误, 例如 502 (Bad Gateway) 和 504 (Gateway Timeout). 然而, 经验表明, 为了帮助调试并向客户端传达实际发生的情况, 还需要更多信息. 此外, 即使中介没有生成响应, 它有时也希望传达关于自己如何处理该响应的附加信息.
为支持这些用途, 第 2 节定义了一个新的 HTTP 响应字段, 允许中介传达其处理响应的细节. 第 2.1 节列举中介可以添加到该字段的信息, 这些信息可以按照第 2.2 节进行扩展. 第 2.3 节定义了一组错误类型, 用于代理在为请求获取响应时遇到问题的情况; 这些错误类型同样可以按照第 2.4 节进行扩展.
1.1. 记法约定 (Notational Conventions)
本文档中的关键词 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" 和 "OPTIONAL" 只有在全部大写出现时, 才应按照 BCP 14 [RFC2119] [RFC8174] 中的描述解释.
本文档使用 [STRUCTURED-FIELDS] 第 3 节中的以下术语来规定语法和解析: List, String, Token, Integer 和 Byte Sequence.
注意, 在本规范中, "proxy" 同时用于表示正向代理和反向代理, 后者也称为网关. "Next hop" 表示请求朝源服务器方向前进时的连接.