Http 在Tomcat中防止304未修改响应

Http 在Tomcat中防止304未修改响应,http,tomcat,servlets,caching,servlet-filters,Http,Tomcat,Servlets,Caching,Servlet Filters,如果资源(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,

如果资源(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");
但它只在第二个请求中起作用。第一个请求仍然得到304。 我尝试使用
HttpServletRequestWrapper
覆盖
(如果自
以来修改过)标题,使用过去的值,例如
Mon,06 Dec 2010 01:34:46 GMT
,但运气不好-尽管该文件在2015年被修改,客户端仍收到304条响应。
有什么办法可以阻止我的回应吗?可能通过tomcat配置?

不确定这是否有帮助,但您可以尝试以下方法-

  • 删除浏览器缓存以从头开始并测试其是否有效

  • 改编自另一个问题-

  • 更改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>