Chinaunix

标题: (已解决)http访问如何完全禁止用户使用本地缓存? [打印本页]

作者: hawkli    时间: 2009-04-28 16:16
标题: (已解决)http访问如何完全禁止用户使用本地缓存?
我们的业务中客户机每次访问服务器都需要先从服务端取得一个配置文件,纯TXT的。然后进行版本比较,如果有新版本,则会去下载一些其他的程序文件。
这时会有一个问题,无论怎么样,这个纯TXT用户都可能会存在本地缓存的情况,也就是说明明我服务器上已经更新到最新的TXT文件了,但从客户端上去看,还是上一个版本的,如果用IE来看也是老版本的,但在IE下按ctrl-F5强制从服务端再取一次,就能取到。
我如何才能要求客户端每次访问都必须强制从服务端取得最新的文件呢?当然我不可能让用户去改他们本地的IE或其他配置,必须是一个纯服务端的解决方案。
解决方案是自己写一个程序,在HTTP头上加上nocache,用这个程序去调txt

[ 本帖最后由 hawkli 于 2009-5-19 11:47 编辑 ]
作者: badb0y    时间: 2009-04-28 17:28
IE上可以设置,,服务器上应该管理不了本地缓存
作者: hawkli    时间: 2009-04-28 18:04
没办法在IE里设呀,我们是有一个客户端程序直接通过http访问这个TXT的,不可能再去控制用户的IE的。
作者: LnBSD    时间: 2009-05-07 22:09
http://xxx.com/xxx.txt?xxx
作者: xinglp    时间: 2009-05-12 13:30
原帖由 hawkli 于 2009-4-28 16:16 发表
我们的业务中客户机每次访问服务器都需要先从服务端取得一个配置文件,纯TXT的。然后进行版本比较,如果有新版本,则会去下载一些其他的程序文件。
这时会有一个问题,无论怎么样,这个纯TXT用户都可能会存在本 ...


在HTTP头中加入过期时间, 过期时间是当前时间以前的一个时间,这样每次都会读取最新的, 但是对服务器压力比较大,最好在客户端缓存一段和理的时间.

不过正常来说,如果服务器么有修改,则返回304,如果修改了则返回最新的?

另外,你是不是在使用AJAX
作者: clyet    时间: 2009-05-12 15:30
即使设置了expire头,普通刷新应该就可以了,不知道楼主为啥还需要强制刷新,web前端还有缓存服务器???

还有楼主设置etag头试试,按最高标准来
作者: 一刀砍死    时间: 2009-05-12 16:08
Header merge Cache-Control no-cache env=NO_CACHE




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2