如果相同的URL可以提供不同的内容类型,那么包含接受吗?

时间:2015-08-10 16:07:58

标签: rest http caching content-negotiation vary

如果相同的URL可以为同一资源提供不同的内容类型,那么Vary是否必须包括Accept?或者浏览器缓存和代理是否将其理解为隐式?

示例:

GET /some/thing HTTP/1.1
Accept: application/json

此回复

HTTP/1.1 200 OK
Transfer-Encoding: gzip
Content-Type: application/json
Cache-Control: max-age=3600, must-revalidate
Vary: Transfer-Encoding

{...}

或者这个

HTTP/1.1 200 OK
Transfer-Encoding: gzip
Content-Type: application/json
Cache-Control: max-age=3600, must-revalidate
Vary: Transfer-Encoding, Accept

{...}

1 个答案:

答案 0 :(得分:0)

实际上RFC并未表示内容类型(Accept)标题的任何“隐含”或特殊处理......

  

Vary字段值,由逗号分隔的名称列表组成      表示命名的请求头字段,称为      选择标题字段可能会在选择时发挥作用      表示。