浏览器缓存-如果最后一个REST请求是POST/PUT/DELETE,是否可以停止缓存



我的网站正在缓存REST请求。我对网站的速度感到满意,并希望保留缓存。但是,我发现在发出POST/PUT/DELETE请求后,会返回相同的文件。这意味着更新后的数据库不会被调用。刷新页面后也会发生同样的情况。我希望在POST/PUT/DELETE请求之后从数据库中更新信息。

我只是想知道,如果最后一个REST请求不是POST/PUT/DELETE,我是否可以设置一个条件语句来缓存文件?该网站托管在一个共享的网络托管平台上,我可以修改.htaccess文件。非常感谢您的任何想法。我希望我的解释是清楚的,但如果不是,请随时联系。提前感谢

要停止浏览器缓存,我们可以在HTML中添加以下属性作为元标头
缓存控制:没有缓存,没有存储,必须重新验证Pragma:没有缓存过期时间:0

我们必须将以上标题保存在html页面中,该页面将在要使用的父html中。

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">

以下代码可以从javaservlet或nodejs中使用

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setHeader("Expires", "0");

servlet代码示例如下

public void doGet(HttpServletRequest req,HttpServletResponse response) throws ServletException,IOException  
{   
if(req.get[some field name].equals("last_request")){
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setHeader("Expires", "0");
}
} 

下面的链接可以作为这个线程的参考

我们如何控制所有浏览器中的网页缓存?

最新更新