以下为Spring Mvc设置过期时间控制过期时间
@RequestMapping("/test")
public ModelAndView test(HttpServletResponse response,
@RequestHeader (value = "If-Modified-Since", required = false) Date ifModifiedSince){
ModelAndView mav = new ModelAndView("index");
DateFormat gmtDateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss 'GMT'", Locale.US);
long now = System.currentTimeMillis();
long maxAge = 20;
if(ifModifiedSince != null ) {
long lastmodifytime = ifModifiedSince.getTime() - 8 * 60 * 60 * 1000;
if(now <= lastmodifytime + (maxAge * 1000)){
response.setStatus(HttpStatus.NOT_MODIFIED.value());
return null;
}
}
String format = gmtDateFormat.format(new Date(now + maxAge * 1000));
response.setHeader("Last-Modified", gmtDateFormat.format(new Date(now)));
//当前系统时间
response.setHeader("Date", gmtDateFormat.format(new Date(now)));
response.setHeader("Content-Type", "text/html; charset=utf-8");
//过期时间 http 1.0支持
response.setHeader("Expires", format);
//文档生存时间 http 1.1支持
response.setHeader("Cache-Control", "max-age=" + maxAge);
mav.addObject("now", gmtDateFormat.format(new Date(now)));
return mav;
}
分享到:
相关推荐
1. **Android HTTP缓存的基本概念** - **HTTP缓存策略**:主要有两种,一是强缓存(Cache-Control或Expires头),二是协商缓存(ETag与Last-Modified头)。当网络可用时,服务器通过这些头信息指导客户端是否应该...
http缓存详解ppt原创 1. 缓存的类型 2. http缓存详解 •http请求流程 •缓存操作的目标 •缓存控制 •缓存验证 •新鲜度 •vary响应 3. http缓存的应用及意义 4. 关于http缓存的一些问题
Go-pike是一个基于Go语言开发的HTTP缓存服务,它为用户提供了一种高效且简洁的解决方案,以替代传统的HTTP缓存工具如Varnish。Varnish以其出色的性能和强大的VCL(Varnish Configuration Language)配置而闻名,但在...
Last-Modified 规则可以设置缓存的最后修改时间,例如 Last-Modified: Wed, 21 Jan 2010 01:23:45 GMT,可以设置缓存的最后修改时间为 2010 年 1 月 21 日 01:23:45。 Vary 是一种控制浏览器缓存的规则,它可以控制...
1. 第一次请求,不存在缓存结果和缓存标识,直接向服务器发送请求。 2. 存在缓存标识和缓存结果,但是已经失效,强缓存失效,则使用协商缓存。 3. 存在该缓存结果和缓存标识,且该结果尚未失效,强缓存生效,直接...
### 浏览器HTTP缓存机制详解 #### 一、概述 HTTP缓存机制是现代Web应用中的一个重要组成部分,它能够显著提升用户体验并减轻服务器负载。本文将详细探讨浏览器HTTP缓存的工作原理及其背后的机制。 #### 二、HTTP...
http缓存处理的示例代码,应该对你们有用吧,如果对网站性能很关注的话
1. **启用缓存**: 在Spring配置文件中,我们需要启用缓存管理。这可以通过添加`@EnableCaching`注解到一个配置类来实现。这个注解会开启缓存注解的处理,使我们可以在方法上使用`@Cacheable`、`@CacheEvict`等注解...
1. **服务端缓存**:主要依赖于应用服务器提供的缓存机制。这种方式下的缓存通常更安全,因为数据保存在服务器端,不受客户端环境的影响。例如,Tomcat服务器支持通过`<Valve>`配置项启用JSP缓存功能。 2. **客户端...
缓存是一种存储技术,它将频繁使用或近期可能需要的数据临时存储在速度较快、访问成本较低的地方,以便快速读取,减少对原始数据存储(如数据库)的直接访问压力。缓存能够提升数据检索效率,因为从缓存中读取数据...
输出缓存则主要针对HTTP响应,它可以缓存整个页面或页面的部分内容,这样当相同的请求再次到来时,就可以直接从缓存中返回,而无需重新生成页面。 何时使用缓存?以下是一些常见的情况: 1. 数据访问频繁但变化不...
一、HTTP缓存的基本概念 HTTP缓存分为两种主要类型:浏览器缓存和代理服务器缓存。浏览器缓存位于用户本地,主要用于存储用户访问过的网页资源;代理服务器缓存则在服务器端,用于服务大量用户,减少对源服务器的...
页面缓存:加载一个网页时的html、JS、CSS等页面或者资源数据,这些缓存资源是由于浏览器 的行为而产生,开发者只能通过配置HTTP响应头影响浏览器的行为才能间接地影响到这些缓存数据。 而缓存的索引放在:/data/...
1. 数据存储:首先,我们需要一个数据存储机制来保存缓存的数据。这通常可以是内存缓存(如MemoryCache)或者分布式缓存(如Redis、Memcached)。内存缓存适用于小型应用,而分布式缓存适合多服务器环境,能保证多台...
浏览器HTTP缓存是提高网页加载速度和降低服务器压力的关键机制,它主要分为两种类型:强缓存(Strong Cache)和协商缓存(Conditional Cache)。理解这两种缓存的工作原理对于优化Web应用性能至关重要。 1. 强缓存...
1. 登录Geoserver管理界面:首先,你需要通过浏览器访问Geoserver的Web管理界面,通常默认地址为http://localhost:8080/geoserver/web,使用管理员账号登录。 2. 打开图层管理:在左侧菜单栏中,选择“工作空间” -...
1. **Pragma**: 在HTTP1.0中,`Pragma:no-cache`用于指示浏览器不应缓存页面,但这个指令对HTTP1.1不强制,仅作为向后兼容的机制。 2. **Cache-Control**: 这是HTTP1.1引入的字段,提供了更多的控制选项。例如: -...
1. **禁用缓存**:在某些情况下,我们可能希望禁用浏览器缓存以测试服务器在处理无缓存请求时的性能。在LoadRunner中,可以通过在HTTP协议初始化函数(http_init())中设置`web_set_sockets_option("HDR_RESERVE", ...
**Http页面缓存机制** HTTP页面缓存机制是网络应用中的一个重要组成部分,它极大地提高了网页加载速度,减少了服务器压力,并优化了用户体验。在浏览器与服务器之间的通信中,缓存扮演了中间者的角色,将频繁访问的...
1. 数据缓存策略:常见的缓存策略包括“先查缓存再请求”(Cache-first)、“先请求再缓存”(Network-first)以及“在网络不可用时使用缓存”(Cache-only)。选择哪种策略取决于应用的需求,比如对于实时性要求不...