查看文章 |
不可忽略的缓存header
2009-04-23 10:12
在一些局域网环境中,如果是用的代理上网,对于一些需要用户权限认证的页面,没有配置相应的缓存控制header,就有可能因为缓存的问题而产生莫名其妙的串门事件。 比如:a用户和b用户都注册了同一个网站的会员,a用户登录某个页面page.html后,b用户也接着登陆同一个页面,这个时候,代理没有从 page.html的response header里边找到缓存控制项,就会认为可以直接从缓存里边读取这个页面。这样的话,b用户就看到了a用户登录过的page.html,而这个页面的用 户信息都是与a用户有关的,他就会非常奇怪,这是谁呀?我到哪去了? 查看rfc的中与Cache-Control有关的文档,就可以知道,这种情况需要对Cache-Control这个header项进行一些设置,比如在nginx中这样配置: add_header Cache-Control "no-cache, no-store, max-age=0, must-revalidate"; 而在http1.0协议中,并不存在Cache-Control这个header,要做到向下兼容,需要增加如下的配置项: add_header Pragma: no-cache; |
最近读者: