[英]HTTP Request headers and caching
当请求具有相同路径但不同的标头时,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则会使用缓存响应。
您应该使用缓存版本,除非更改的标题出现在(可选) Vary
响应标头提供的列表中。
例如,包含的响应
Vary: accept-encoding, accept-language
表示源服务器可能已使用该请求
Accept-Encoding和Accept-Language字段(或缺少)字段为
在选择此响应的内容时确定因素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.