我试图在我的生产应用程序中使用 akamai 在您注销时基本上缓存每个页面,因为我们只有一小部分用户拥有帐户。但是,我希望能够为登录用户提供页面的非缓存版本。
看来我可以在控制器中执行此操作,例如:
headers['Edge-control'] = "no-cache, no-store"
这行得通吗?有没有更好的方法来处理这个问题,也许从较低的级别,比如 Rack?我在寻找标准做法时遇到了很多麻烦。
谢谢!
我试图在我的生产应用程序中使用 akamai 在您注销时基本上缓存每个页面,因为我们只有一小部分用户拥有帐户。但是,我希望能够为登录用户提供页面的非缓存版本。
看来我可以在控制器中执行此操作,例如:
headers['Edge-control'] = "no-cache, no-store"
这行得通吗?有没有更好的方法来处理这个问题,也许从较低的级别,比如 Rack?我在寻找标准做法时遇到了很多麻烦。
谢谢!
我刚刚用 akamai 和 wordpress 处理了这种情况。即使 akamai 尊重标头,将规则基于 cookie 可能更可靠,cookie 与您用于跟踪登录的 cookie 相同。这样,缓存与可见的东西相关联——如果 cookie 不存在,则用户没有登录。基于标头的解决方案将更容易出现静默失败,并且需要更多的努力来验证正确的行为。
这不起作用,因为 Akamai 不查看响应标头。不过,您可以使用 cookie 来做到这一点。
是的,您实际上可以使用标题来执行此操作。
只需发送 Edge-Control: no-store
Akamai 实际上确实检查了响应标头...他们如何才能尊重来自源的缓存控制标头...这是一个非常常见的配置设置。
正如user3995360 所说,您最好使用 cookie 告诉 Akamai 不要缓存结果,原因有很多:
话虽如此,当我过去这样做时,我们不得不让 Akamai 顾问在我们的设置中启用此功能。