0

我试图在我的生产应用程序中使用 akamai 在您注销时基本上缓存每个页面,因为我们只有一小部分用户拥有帐户。但是,我希望能够为登录用户提供页面的非缓存版本。

看来我可以在控制器中执行此操作,例如:

headers['Edge-control'] = "no-cache, no-store"

这行得通吗?有没有更好的方法来处理这个问题,也许从较低的级别,比如 Rack?我在寻找标准做法时遇到了很多麻烦。

谢谢!

4

4 回答 4

2

我刚刚用 akamai 和 wordpress 处理了这种情况。即使 akamai 尊重标头,将规则基于 cookie 可能更可靠,cookie 与您用于跟踪登录的 cookie 相同。这样,缓存与可见的东西相关联——如果 cookie 不存在,则用户没有登录。基于标头的解决方案将更容易出现静默失败,并且需要更多的努力来验证正确的行为。

于 2014-08-31T20:16:03.857 回答
1

这不起作用,因为 Akamai 不查看响应标头。不过,您可以使用 cookie 来做到这一点。

于 2014-02-13T05:21:27.823 回答
1

是的,您实际上可以使用标题来执行此操作。

只需发送 Edge-Control: no-store

Akamai 实际上确实检查了响应标头...他们如何才能尊重来自源的缓存控制标头...这是一个非常常见的配置设置。

于 2014-08-29T08:40:21.997 回答
0

正如user3995360 所说,您最好使用 cookie 告诉 Akamai 不要缓存结果,原因有很多:

  1. 如果 Akamai 有您页面的缓存版本,则会为登录的用户提供服务 - 您的服务器将没有机会发送不同的标头。
  2. 没有什么可以告诉 Akamai 为什么某些请求的标头不同 - 如果您的登录用户设法获取了 no-store 标头,然后匿名用户缓存了该页面,那么您将回到第 1 点。

话虽如此,当我过去这样做时,我们不得不让 Akamai 顾问在我们的设置中启用此功能。

于 2015-01-21T16:18:55.477 回答