我目前使用 Akamai 作为 CDN,但我注意到浏览器也在缓存内容。浏览器缓存图像/css/js 很好,但我想知道是否有办法不在浏览器上缓存,而是在 Akamai 中缓存。
现在,我现在从我的原点发送这样的标题:
Cache-Control: public, must-revalidate, max-age=300
Expires: Sun, 19 Feb 2012 19:04:30 GMT
Date: Sun, 19 Feb 2012 18:59:30 GMT
Akamai 尊重这些标头,但也将它们直接传回给用户。这使得浏览器实际上也缓存了内容。
这在大多数情况下都很有效,但我们也有一些 CDN 逻辑,如果用户有一个登录的 cookie,则绕过 CDN 缓存并直接进入源。
因此,如果假设未经身份验证的用户单击“登录”,则他们将通过登录过程发送并返回同一页面。即使 CDN 会从源请求此页面,浏览器实际上会再次请求相同的页面,并且看起来好像登录没有工作。
现在,我可以强制登录过程添加一个查询参数,如 ?l=1 或其他东西,但必须有更好的方法。
我很想看看 Akamai 是否可以将 Cache-Control 标头覆盖为硬编码的无缓存值,但我想知道是否有办法在源头做到这一点?
谢谢!