我有几个与缓存控制相关的疑问。
如果我指定缓存控制max-age=3600, must-revalidate
对于静态 html/js/images/css 文件,在 HTTP 标头中定义了 Last Modified 标头:
- 浏览器/代理缓存(如 Squid/Akamai)是否会一直到达源服务器进行验证在 max-age 到期之前?或者它会从缓存中提供内容直到 max-age 过期吗?
- max-age 过期(即缓存过期)后,是否存在 If-Modified-Since 检查,或者是否从源服务器重新下载内容而不进行 If-Modified-Since 检查?
a) 如果服务器包含此标头:
Cache-Control "max-age=3600, must-revalidate"
它告诉客户端缓存和代理缓存,一旦内容过时(超过 3600 秒),它们必须在源服务器上重新验证,然后才能提供内容。这应该是缓存系统的默认行为,但是must-revalidate
指令明确了这一要求。
b) 客户应重新验证。它可能会使用重新验证If-Match
or If-None-Match
带有 ETag 的标头,或者可能使用If-Modified-Since
or If-Unmodified-Since
带有日期的标题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)