为了提高性能,我想为每个页面添加一个相当长的Cache-Control(最多30分钟),因为它们不会经常更改。但是,每个页面还会显示登录用户的名称(如本网站)。
问题是当用户登录或注销时:用户名必须更改。如何在保持长缓存控制的同时在每次登录/注销操作后更改用户名?
以下是我能想到的解决方案:
如果我实际拥有的注册用户和新用户的内容不同,则问题会更严重。
答案 0 :(得分:5)
Cache-Control: private
通常在实践中足够了。这就是SO的用途。
理论上,如果您需要允许来自同一客户端的变量登录的情况,您应该在Vary
上设置Cookie
(假设您正在使用登录的机制)。但是,Vary
的这个值(以及大多数其他值)完全搞乱了IE的缓存,因此通常会避免这种情况。此外,通常理想允许用户单步执行后退/前进列表,包括登录/退出页面,而无需重新获取。
对于每个页面强制执行适当登录的情况至关重要(例如银行业务),通常会使用完整的Cache-Control: no-cache
。