【发布时间】:2016-08-08 11:50:15
【问题描述】:
我对设置 Cache-Control 与 max-age 值的理解是指示浏览器缓存文件。
然后我期望的是,如果我在地址栏上为同一链接点击“回车”,浏览器将返回 200(来自缓存) 响应。
我的问题是它为什么返回 304 Not Modified 响应?
我看到它的方式是使用 200(来自缓存)浏览器不再与服务器建立连接以验证文件并立即提供缓存的内容。但是对于 304,虽然浏览器不会再次下载文件,只是简单地指示浏览器提供缓存文件,但它仍然需要发送请求来验证内容的新鲜度。
此处的资产由 Amazon 的 CloudFront CDN 提供,以 Amazon S3 存储桶作为来源。那里的缓存头(在 S3 中)已经设置好了。这不是所有其他自托管资产的问题。
感谢您的帮助!
编辑:我发现了这个What is the difference between HTTP status code 200 (cache) vs status code 304?。附加问题:我已经将 Cache-Control 设置为 max-age=31536000, s-maxage=2592000, no-transform, public 但我仍然得到 304 ,是否也需要设置Expire?我可以在仅使用 Cache-Control 的自托管站点上进行缓存。
【问题讨论】:
标签: amazon-web-services browser amazon-s3 browser-cache cache-control