3. Using the Accept-Encoding Header Field in Responses (在响应中使用 Accept-Encoding 头字段)
[RFC7231] 第 5.3.4 节将 "Accept-Encoding" 仅定义为请求头字段.
本规范扩展该定义, 允许 "Accept-Encoding" 也可作为响应头字段. 当它出现在响应中时, 表示该资源在关联的请求中愿意接受哪些 Content Codings. 若字段值仅包含 "identity", 则表示不支持任何 Content Coding.
请注意, 此信息仅针对关联的请求; 同一服务器上其他资源所支持的编码集合可能不同, 且可能随时间变化, 或取决于请求的其他方面 (例如请求方法).
[RFC7231] 第 6.5.13 节将状态码 415 (Unsupported Media Type) 定义为既适用于与媒体类型相关的问题, 也适用于与 Content Coding 相关的问题.
若服务器因不支持的 Content Coding 而导致请求失败, 应使用 415 状态响应, 并应在该响应中包含 "Accept-Encoding" 头字段, 以便客户端区分与 Content Coding 相关的问题与与媒体类型相关的问题. 为避免与媒体类型相关问题混淆, 若服务器因与 Content Coding 无关的原因以 415 状态使请求失败, 则 MUST NOT 包含 "Accept-Encoding" 头字段.
预期在响应中最常见的 "Accept-Encoding" 用法将伴随 415 (Unsupported Media Type) 状态码, 以回应客户端对 Content Coding 的乐观使用. 但是, 该头字段也可用于向客户端表明支持 Content Coding, 以优化后续交互. 例如, 当请求载荷足够大、本可合理使用压缩编码但客户端未使用时, 资源可能在 2xx 响应中包含该头字段.