我们的网站使用 akamai 作为其 CDN。由于有浏览器缓存,浏览器缓存过期后,会在http请求中发送cache-control:max-age=0
和If-Not-Modified
,得到 304 响应。(我认为这个 304 是从原始 Web 服务器返回的)
cache-control:max-age=0
将强制 CDN 将此 http 请求转发到原始 Web 服务器,那么为什么我们需要 CDN?
我不确定 CDN 提供哪种类型的 http reuqest...以及 CDC 如何与源服务器保持更新?
最佳答案
通过将 max-age 设置为 0,您可以有效地立即使 CDN 边缘缓存中的页面过期。因此,您的 CDN 总是会命中您的源站,并使 CDN 按照您的建议变得毫无用处。
您必须检查特定 CDN 的配置和规则,以确认其从您的源刷新其边缘缓存的策略,但我曾经使用过的所有内容绝对要检查缓存控制和最大年龄(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) )。如果您出于某种原因愿意,大多数还允许您使用 Expires
header 来代替 ( http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21 )
由于您使用的是 Akamai,因此您可以使用 Edge-Control
header 来覆盖您的缓存控制 header 。
关于http - 缓存控制 :max-age=0 and If-Not-Modified in http request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29026362/