http - 缓存控制 :max-age=0 and If-Not-Modified in http request

标签 http caching akamai

我们的网站使用 akamai 作为其 CDN。由于有浏览器缓存,浏览器缓存过期后,会在http请求中发送cache-control:max-age=0If-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/

相关文章:

http - 使用 HTTP PUT 指定文件名的标准方法

Magento 2 在 Js 和 CSS 中的变化

https - 如何在 Akamai 的根域和 www 域上设置 HTTPS?

azure - 在 Azure CDN 中设置响应 header (安全性)

java - 使用 JAVA 项目或 AEM 实现 Akamai CCU V3 快速清除

C Web 服务器,图像未显示在浏览器上?

php - 如何从 PHP 发送 GET 请求?

ruby-on-rails - rails - 使用 Rails.cache 会出错

iOS 如何在后台反复执行http GET请求

java - Java 是否缓存小程序?