Apache, mod_cache and Cookies


Apache, mod_cache and Cookies

我正在考虑使用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,则为他提供正确的页面,其中包含'You are logged in as Jacob'(而不是其他缓存的页面)。

我的理解是正确的,这将以这种方式工作还是我在这里忽略了什么?

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

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

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

使用Apache检查cookie和重定向

Be Well,