参考:http://xingba.iteye.com/blog/294165
HTTP协议中关于缓存的信息头关键字包括Cache-Control(HTTP1.1),Pragma(HTTP1.0),last-Modified,Expires等。
HTTP1.0中通过Pragma
控制页面缓存,可以设置:Pragma或no-cache。网上有非常多的文章说明如何控制不让浏览器或中间缓存服务器缓存页面,通常设置的值为no-
cache,不过这个值不这么保险,通常还加上Expires置为0来达到目的。但是如我们刻意需要浏览器或缓存服务器缓存住我们的页面这个值则要设置为
Pragma。
HTTP1.1中启用Cache-Control
来控制页面的缓存与否,这里介绍几个常用的参数:
- no-cache,浏览器和缓存服务器都不应该缓存页面信息;
- public,浏览器和缓存服务器都可以缓存页面信息;
- no-store,请求和响应的信息都不应该被存储在对方的磁盘系统中;
- must-revalidate,对于客户机的每次请求,代理服务器必须想服务器验证缓存是否过时;
- max-age=xxx,s-max-age=xxx,替代Expires,表示应该在xxx秒后认为页面过时,后者指示代理服务器中缓存(通常称为共享缓存)的页面过期时间。(不过我试了好多次,这个选项一直没法实现,希望有人能补充!)
通常我们不需要缓存页面时设置该值为"no-cache,no-store,must-revalidate"(分三行代码设置);需要缓存页面信息时则设置该值为"public,max-age,s-max-age"。
Last-Modified只页面的最后生成时间,GMT格式;
Expires过时期限值,GMT格式,指浏览器或缓存服务器在该时间点后必须从真正的服务器中获取新的页面信息;
上面两个值在JSP中设置值为字符型的GMT格式,无法生效,设置long类型才生效;
最后来看一下JSP或Servlet中如何设置缓存控制信息的代码:
//本页面允许在浏览器端或缓存服务器中缓存,时限为10秒。
java.util.Date date = new java.util.Date();
response.setDateHeader("Last-Modified",date.getTime());
response.setDateHeader("Expires",date.getTime()+10000);
response.setHeader("Cache-Control", "public");
response.setHeader("Pragma", "Pragma");
-
-
response.setHeader( "Pragma"
,
"no-cache"
);
-
response.setDateHeader("Expires"
,
0
);
-
-
response.addHeader( "Cache-Control"
,
"no-cache"
);
-
response.addHeader( "Cache-Control"
,
"no-store"
);
-
response.addHeader( "Cache-Control"
,
"must-revalidate"
);
分享到:
相关推荐
上述代码设置了页面缓存有效期为60秒,缓存位置为服务器,并且根据所有参数进行缓存差异化。 2. **数据缓存**:数据缓存则更为灵活,可以缓存任何对象。我们可以使用`HttpRuntime.Cache`对象来存储和检索数据。例如...
callback 函数将 request 作为参数,并返回缓存的结果。在我们的例子中,callback 函数返回的是一个字符串,代表着缓存的结果。 测试代码:在测试代码中,我们使用了 JUnit 来测试缓存的实现。我们首先创建了一个 ...
### ASP.NET中的Web页面缓存技术探讨 #### 引言 在现代Web开发中,缓存技术对于提高网站性能和用户体验至关重要。ASP.NET作为一种广泛使用的Web开发框架,提供了丰富的缓存选项来帮助开发者优化应用程序的运行效率...
### 设置页面缓存Cache #### 知识点一:页面缓存的概念与作用 页面缓存(Page Caching)是Web开发中一种重要的优化技术,主要用于提高网站性能和响应速度。通过将页面的HTML输出存储在服务器端的缓存中,当用户...
页面缓存是优化Web应用程序性能的关键技术之一,它通过存储常用的网页或数据在服务器的内存中,减少对数据库的访问,从而大大提高响应速度。在这个小测试中,我们将探讨页面缓存的基本概念,以及如何利用开源工具...
页面缓存是指将频繁访问的网页内容存储在内存中,当用户请求这些页面时,不再需要重新生成或者从数据库查询数据,而是直接从缓存中读取,从而提高了响应速度。OSCache提供了一套完整的解决方案,包括缓存的创建、...
为了提高用户体验,减少服务器负载,并加快页面加载速度,一种常见的技术手段就是网页缓存。本文将深入探讨网页缓存的相关概念、实现原理以及具体的配置方法。 #### 一、网页缓存的重要性 网页缓存可以显著提升...
在缓存生成页面中,可以设置缓存的生成参数,包括使用多少个线程处理缓存、生成缓存的格式、缓存的zoom.start 和 zoom.stop 等。在这里,可以指定缓存生成的位置,默认是 servlet 容器的 temp 目录下。 二、GWC ...
这将缓存页面1小时(3600秒),并且每次参数变化都会生成新的缓存副本。 **应用程序缓存** 应用程序缓存(又称为内存缓存)则用于存储对象或数据,这些数据可以是数据库查询结果、计算结果或其他任何需要频繁访问但...
缓存参数无关算法的一个典型例子是Belady's优化,它指出在最优页面替换策略下,提前替换一个未来不会被再次访问的页面可能导致更多的缺页中断。然而,这种策略在实际应用中难以实现,因为预测未来访问行为非常困难。...
在Web开发过程中,页面缓存问题一直是开发者们关注的重点之一。合理的页面缓存管理不仅可以提升用户体验,还可以减轻服务器压力。然而,在某些情况下,如模态窗口中的POSTBACK操作时,缓存的存在可能会导致一系列...
`VideoCacheView.cfg`可能是一个配置文件,包含了程序的设置选项或者用户自定义的参数,例如默认的浏览器缓存位置、提取规则等。而`VideoCacheView.exe`则是程序的可执行文件,运行后可以启动这个视频缓存提取功能。...
例如,可以设置max-age参数来指定缓存的有效期。 2. 使用ETag头:ETag头可以标识Web页面的版本号,当Web页面更新时,ETag头也会更新。如果浏览器请求的ETag头与服务器端的ETag头相同,那么浏览器就不会重新加载Web...
在这里,你可以找到“缓存”选项卡,配置缓存的类型、大小、分辨率等参数。常见的缓存类型有基于瓦片(Tile)的缓存和基于动态切片(Dynamic)的缓存。 4. 设置缓存地址:在“存储路径”或“Cache directory”字段...
这里的`Duration`属性定义了缓存持续的时间(单位为秒),`VaryByParam`则可以指定哪些请求参数的变化会导致缓存失效。 3. 第三方分布式缓存解决方案: 对于大型应用,单一服务器的缓存可能无法满足需求,这时可以...
然后,需要配置Ehcache的XML配置文件,定义缓存的大小、存活时间和过期时间等参数。接下来,需要在Web.xml中配置`SimplePageCachingFilter`,指定要缓存的URL模式,以及缓存管理器实例。 **4. `backport-concurrent...
1. **timeToIdleSeconds**:此参数定义了缓存项在未被访问后的存活时间,一旦达到这个时间,Ehcache将清除该缓存。例如,如果设置为120秒,缓存的页面2分钟后未被再次访问,它将被移除。 2. **timeToLiveSeconds**...
Internet Explorer(IE)是微软公司开发的网页浏览器,它有一个本地缓存系统,用于存储用户访问过的网页的静态资源,如图片、CSS样式表和JavaScript文件等,以提高再次访问这些页面时的加载速度。随着时间的推移,...