HTTP请求标头和缓存

时间:2016-03-14 16:59:24

标签: google-chrome http caching microsoft-edge

当请求具有相同路径但标题不同时,HTTP代理应如何决定是否使用缓存响应?

以此HTTP请求/响应为例:

GET /resource HTTP/1.1
Host: example.org
X-Filter: foo=bar

HTTP/1.1 200 OK
Cache-Control: max-age=3600
Content-Type: application/json
Content-Length: 13

{"foo":"bar"}

代理是否应该认为响应对于具有不同X-Filter标头的第二个请求有效?例如:

GET /resource HTTP/1.1
Host: example.org
X-Filter: foo=baz

然后在第一个请求的一个小时内,代理是否应该请求新的响应,因为请求标头不同,或者应该使用第一个请求的缓存响应,忽略标头?

我之所以这样问,是因为我注意到Google Chrome发出了新请求,而Microsoft Edge却使用了缓存响应。

1 个答案:

答案 0 :(得分:4)

您应该使用缓存版本,除非the (optional) Vary response header提供的列表中显示更改的标题。

  

例如,包含

的响应
 Vary: accept-encoding, accept-language
     

表示源服务器可能已使用请求的
  Accept-Encoding和Accept-Language字段(或缺少字段)为
  在选择此响应的内容时确定因素。

相关问题