内容协商

客户端通过 Accept、Accept-Language 与 Accept-Encoding 声明偏好,服务端选择表述并在 Content-Type 中声明结果;版本升级也可借媒体类型承载。

请求Accept: application/json;q=1.0, application/xml;q=0.5
响应Content-Type: application/json
编码Accept-Encoding: gzip 由网关或服务执行压缩
服务端不支持声明格式时返回 406;实现上常固定 JSON 并忽略其余偏好,需要在文档中写清。

易错点

  • 忽略 Accept 头返回固定格式且不声明 Content-Type
  • 响应缓存键未包含编码维度,压缩与原文混缓存

数据来源与参考

  • RFC 9110 HTTP Semantics(第 12 章内容协商)
  • RFC 9111 HTTP Caching
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌