我有一个在Jetty上运行Jersey的REST Java服务器.似乎某些浏览器(IE7)在内部缓存对服务器发出的所有请求. 我想要做的是在REST服务器的响应中发送一个特定的HTTP头,指示浏览器不应该缓存该响
我想要做的是在REST服务器的响应中发送一个特定的HTTP头,指示浏览器不应该缓存该响应,因此下次需要访问该资源时将再次查询服务器.
有关如何为此配置Jersey / Jetty的任何想法?
或者配置它的唯一方法是客户端?
response.setHeader(“Pragma”, “no-cache”);
不不不!
使用pragma头来禁用客户端缓存是错误的,它是一个请求头,对响应没有任何影响.
http://www.mnot.net/cache_docs/#PRAGMA
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32
此外,设置Expires:0不正确,Expires应该是一个日期,而不是秒数,但是这将作为无效的http日期被解释为“已经过期”
http://www.mnot.net/cache_docs/#EXPIRES
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21