4

如果我将服务器响应设置为:会发生什么 Cache-Control: private,no-cache,max-age=900?如果标题是这样的会发生什么: Cache-Control: public,no-cache,max-age=900

既然它有一个no-cache浏览器(或代理服务器)是否考虑max-age

4

1 回答 1

7

RFC 文档中所述:

如果 no-cache 指令未指定字段名称,则缓存不得使用响应来满足后续请求,而无需与源服务器成功重新验证。这允许源服务器阻止缓存,即使缓存已配置为向客户端请求返回陈旧响应。

因此,如果no-cache已在服务器的响应中定义,这意味着浏览器(和任何中间缓存)将对每个请求“重新验证”(也就是向源服务器发出请求并返回其响应,而不是使用任何缓存内容)。

因此,要清楚地回答您的问题:

既然它没有缓存,浏览器(或代理服务器)是否考虑最大年龄?

不,浏览器不会考虑max-age(假设浏览器可以处理该no-cache指令,因为某些 HTTP 1.0 浏览器/缓存可能无法识别)。

于 2018-05-06T20:24:56.587 回答