【问题标题】:Apache, mod_cache and CookiesApache、mod_cache 和 Cookie
【发布时间】:2011-10-21 13:04:18
【问题描述】:

我正在考虑使用 mod_cache。但是,我希望由 Apache 缓存的页面(由 php 生成)通常包含该用户的登录名(“您登录为 ...”)。所以我不能只为所有用户缓存一个页面。

登录状态由 cookie 确定。所以我认为我可以(在 PHP 中)在每个页面中包含一个“Vary: Cookie”标题。如果我对 RFC 2616 的理解是正确的,这应该指示 Apache(或任何其他)缓存算法为用户代理发送的每个单独的 Cookie 值缓存一个单独的页面。

因此,如果浏览器未发送任何 cookie(用户已注销),则缓存的响应与缓存的对带有 Cookie 的请求的响应分开:state=89898XAAJ(用户以“Jacob”身份登录)并且再次与带有 Cookie 的请求的缓存响应分开:state=XXAIU2389(用户以“Bob”身份登录)。如果一段时间后,用户请求相同的 URL 并使用 Cookie:state=89898XAAJ,则会为他提供正确的页面,其中包含“您以 Jacob 的身份登录”(而不是其他缓存的页面)。

我的理解是否正确,这会以这种方式工作还是我在这里忽略了一些东西?

【问题讨论】:

    标签: php apache caching cookies session-cookies


    【解决方案1】:

    我不确定你描述的方法是否有效。

    如果没有,您可以尝试使用重写条件检查 cookie 值,并根据用户和登录状态重定向到缓存地址。

    本页讨论基于 cookie 值的重写:

    Check cookie and redirect with Apache

    好好的,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-18
      • 2014-10-31
      • 2016-07-11
      • 1970-01-01
      • 2012-07-05
      • 1970-01-01
      • 2010-09-18
      • 2013-10-07
      相关资源
      最近更新 更多