当前位置: 首页 > 知识库问答 >
问题:

Spring boot web应用程序没有cache-control标头

颛孙铭
2023-03-14
    response.setHeader("Cache-Control", "no-store"); // HTTP 1.1.
    response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
    response.setHeader("Expires", "0"); // Proxies. 

共有1个答案

云承天
2023-03-14

有不同类型的标题设置。

我建议用过滤器或配置来设置它。

配置

@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类做了一点修改,现在我得到了以下异常: