response.setHeader("Cache-Control", "no-store"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setHeader("Expires", "0"); // Proxies.
有不同类型的标题设置。
我建议用过滤器或配置来设置它。
配置
@EnableWebSecurity
public class WebSecurityConfig extends
WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// ...
.headers()
// do not use any default headers unless explicitly listed
.defaultsDisabled()
.cacheControl();
}
}
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
@WebFilter("/filter-response-header/*")
public class AddResponseHeaderFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
httpServletResponse.setHeader(
"Cache-Control", "no-store");
httpServletResponse.setHeader(
"Pragma", "no-cache");
httpServletResponse.setHeader(
"Expires", "0");
chain.doFilter(request, response);
}
对于单个响应
HttpServletResponse:
HttpServletResponse response
response.addHeader("Cache-Control", "no-store");
response.addHeader("Pragma", "no-cache");
response.addHeader("Expires", "0");
欲了解更多信息,请参见:https://www.baeldung.com/spring-response-header
我正在努力学习一些关于HTTP的基础知识。我检查了一些HTTP响应头,注意到了两件让我困惑的事情: > 没有缓存控制标头,并且 ETag标头存在。 我理解 ETag 的方式是,客户端将 ETag 中的请求发送到缓存,并且缓存将资源 Etag 与服务器重新验证。但是,如果没有缓存控制标头作为响应,则所有后续请求都直接与服务器进行重新验证并完全省略缓存。是这种情况还是我错过了什么?当响应中不存在缓存控
我们正在使用Azure CDN来提供图像,我正在尝试了解为什么图像会被Web浏览器强缓存,即使图像响应中没有Cache-Control或Expires标头。 例如,对于来自Azure CDN的图像,返回以下响应头: 如您所见,返回了一个Etag标头,但没有Cache-Control或Expires标头。 当从浏览器(Chrome)跟踪流量(使用Fiddler)时,我们看不到对这些图像的任何后续请求
Cache-Control通用头字段用于指定在两个,请求和响应的缓存机制的指令。缓存指令是单向的,这意味着请求中的给定指令并不意味着将在响应中给出相同的指令。 Header type General header Forbidden header name no CORS-safelisted response-header yes 语法 这些指令不区分大小写,并且有一个可选参数,可以同时使用令牌
本文向大家介绍cache-control 的值有哪些?相关面试题,主要包含被问及cache-control 的值有哪些?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: cache-control是一个通用消息头字段被用于HTTP请求和响应中,通过指定指令来实现缓存机制,这个缓存指令是单向的,常见的取值有private、no-cache、max-age、must-revalidate等,默认
这里有很多关于向ActionBar添加图标的问题,但都没有解决我的问题。如果你知道这个问题的副本,请随意评论或关闭这个问题。 我将我的项目迁移到IntelliJ,我以前的IDE(Eclipse)没有遇到这个问题。 问题:应用程序图标未显示在操作栏中。 我认为默认情况下应该添加它,这就是为什么我不能通过它的XML添加它 这是它的XML 谢谢
注意:我对Configuration类做了一点修改,现在我得到了以下异常: