RvP*_*vPr 4 rest https http cache-control
我天真地假设,如果我启用了缓存控制,并且客户端使用不同的标头参数值发出了 2 个不同的请求,则浏览器/服务器将独立地服务这两个请求,而无需任何缓存。
我痛苦地发现这实际上不是真的。即使请求标头的参数值发生变化,第一个响应仍然会被缓存并为第二个请求提供服务。
是否有关于哪些构成“高速缓存命中”以及哪些构成“高速缓存未命中”的高速缓存控制行为的明确列表?
我目前可以想到的一些不同因素:
根据我的经验,为了确定请求是否缓存命中,数字 6 肯定会被忽略。
根据我所做的一些研究,在确定某些内容是否缓存命中时似乎会评估因素 1 和 2。
其他人呢?
有关规范,请参阅RFC 7234 。
尤其:
主缓存键由请求方法和目标 URI 组成。
另请注意:
当提出请求时,缓存不得重用存储的响应,除非: ...选择由存储的响应指定的头字段(如果有)与出现的字段匹配(参见第 4.1 节)
并且:
当缓存收到一个可以由具有 Vary 头字段的存储响应来满足的请求时([RFC7231] 的第 7.1.4 节),它不得使用该响应,除非所有选择头字段都由 Vary 头字段指定原始请求(即与存储的响应相关联的请求)和所呈现的请求都匹配。
也就是说,除非服务器响应并指定该标头,否则假定标头不重要Vary:。
| 归档时间: |
|
| 查看次数: |
4128 次 |
| 最近记录: |