【发布时间】: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