如果资源(index.html)已经缓存在客户端中,例如使用响应头:
"Cache-Control": "max-age=0, must-revalidate, proxy-revalidate"
如何阻止tomcat通过下一个请求中的304 Not Modified
响应服务器?我想强制服务器响应200而不是304,无论如何。
我试着设置
httpResp.setHeader("Cache-Control", "no-cache, no-store, must-revalidate, proxy-revalidate");
httpResp.setHeader("Pragma", "no-cache");
httpResp.setHeader("Expires", "0");
但它只适用于SECOND请求。第一个请求仍然是304。
我尝试使用if-modified-since
使用过去的值覆盖HttpServletRequestWrapper
标头,例如Mon, 06 Dec 2010 01:34:46 GMT
但没有运气 - 尽管文件在2015年已修改,但客户端仍然获得304回复。
有什么方法可以阻止304回复吗?也许通过tomcat配置?
答案 0 :(得分:0)
不确定这是否会有所帮助,但您可以尝试以下方法 -
删除浏览器缓存以从头开始并测试这是否有效
改编自另一个ServerFault问题 -
更改cachingAllowed标志后,您可能必须删除/ work / Catalina / localhost中的应用程序缓存文件夹。 可以在server.xml中引入配置为
<Context className="org.apache.catalina.core.StandardContext"
cachingAllowed="false"
charsetMapperClass="org.apache.catalina.util.CharsetMapper"
cookies="true"
reloadable="false"
wrapperClass="org.apache.catalina.core.StandardWrapper">
</Context>