`

HTT页面缓存

 
阅读更多
 

转自:http://blog.csdn.net/zxycode007/article/details/7045236

 

1. response.setHeader("Cache-Control","no-cache");

This is used to prevent the browser from caching your dynamic content generated by a JSP or Servlet.

You set this attribute in the HTTP header of the response object which would tell the browser not to cache this content. So everytime you request the page again, the browser would make a new request, instead of showing you a cached page.

2.使用服务器端控制AJAX页面缓存:
    response.setHeader( "Pragma", "no-cache" );
    response.addHeader( "Cache-Control", "must-revalidate" );
    response.addHeader( "Cache-Control", "no-cache" );
    response.addHeader( "Cache-Control", "no-store" );
    response.setDateHeader("Expires", 0);
单纯的使用 xmlhttp.setRequestHeader("Cache-Control","no-cache")无效。

3.Cache-Control头域
  Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下:
  Public指示响应可被任何缓存区缓存。
  Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。
  no-cache指示请求或响应消息不能缓存
  no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
  max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。
  min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。
  max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。

综述:

Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。网页的缓存通过HTTP消息头中的“Cache-control”来控制,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。

 

其作用根据不同的重新浏览方式分为以下几种情况:

(1)打开新窗口如果指定cache-control的值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如: Cache-control: max-age=5 表示当访问此网页后的5秒内再次访问不会去服务器。

(2)在地址栏回车如果值为private或must-revalidate(和网上说的不一样),则只有第一次访问时会访问服务器,以后就不再访问。如果值为no-cache,那么每次都会访问。如果值为max-age,则在过期之前不会重复访问。

(3)按后退按扭如果值为private、must-revalidate、max-age,则不会重访问,而如果为no-cache,则每次都重复访问。

(4)按刷新按扭无论为何值,都会重复访问当指定Cache-control值为“no-cache”时,访问此页面不会在Internet临时文章夹留下页面备份。另外,通过指定“Expires”值也会影响到缓存。例如,指定Expires值为一个早已过去的时间,那么访问此网时若重复在地址栏按回车,那么每次都会重复访问: Expires: Fri, 31 Dec 1999 16:00:00 GMT 在ASP中,可以通过Response对象的Expires、ExpiresAbsolute属性控制Expires值;通过Response对象的CacheControl属性控制Cache-control的值,例如: Response.ExpiresAbsolute = #2000-1-1# ' 指定绝对的过期时间,这个时间用的是服务器当地时间,会被自动转换为GMT时间 Response.Expires = 20 ' 指定相对的过期时间,以分钟为单位,表示从当前时间起过多少分钟过期。 Response.CacheControl = "no-cache" Expires值是可以通过在Internet临时文件夹中查看临时文件的属性看到的。

 

 

response.setHeader("Cache-Control","no-cache");

response.setHeader("Cache-Control","private");

使用Java提供的方法防止IE缓存JSP文件  /清除response缓存的方法

Java代码
  1. HttpServletResponse response = runData.getResponse();   
  2.         response.setHeader("Pragma","No-cache");    
  3.         response.setHeader("Cache-Control","no-cache");    
  4.         response.setDateHeader("Expires"0);   

  1, 使用java提供的方法,在jsp或者servlet中都可以
  <%
  response.setHeader("Pragma","No-cache");
  response.setHeader("Cache-Control","no-cache");
  response.setDateHeader("Expires", 0);
  %>

在jsp页里
<%response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
response.flushBuffer();%>

二、清除cookie
<%  
          Cookie   killMyCookie   =   new   Cookie("mycookie",   null);  
          killMyCookie.setMaxAge(0);  
          killMyCookie.setPath("/");  
          response.addCookie(killMyCookie);  
%>
三、清除session
清除session方法
<%@   page   language="java"   %>  
<%  
  session.invalidate();  
%>  
在页面关闭时清除session,需要捕获windows.onclose事件,再调用清除session方法

<!-- 正文开始 -->

 

分享到:
评论

相关推荐

    Htt[Watch网页数据分析工具

    HttpWatch是一款强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功能.报告输出

    HTT CPU Vs Athlon MP HTT超线程Vs速龙MP.pdf

    Intel的至强(Xeon)CPU采用了这种技术,并在13微米工艺下增加了512KB的片内二级缓存,提升了性能。开启HTT技术对服务器性能的提升尤其显著,但对于一般软件,效果并不明显。 AMD的Athlon MP,例如Palomino内核的...

    Nginx服务器中浏览器本地缓存和虚拟机的相关设置

    自动列出目录配置: 下载过开源软件的都知道,一个很简单的页面列出了所有版本的源码包,这就是开启了自动列出目录 如下配置,在虚拟主机location / {……}目录控制中配置自动列出目录: ...用途: 通过expires指令控制htt

    Java资源包01

    可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL...

    ProcessPageViewStat:记录CMS ProcessWire的页面视图

    ProcessPageViewStat记录CMS ...为了防止浏览器从其缓存中加载页面,请在页面标题中添加以下元标记: &lt; meta http-equiv =" Cache-Control " content =" no-cache, no-store, must-revalidate " /&gt;&lt; meta htt

    asp php网站源码,网站源文件,网站模板下载

    PHP的缺点可能包括性能瓶颈,特别是在处理大型项目时,但可以通过优化代码和使用缓存技术来缓解。 【网站源文件解析】 网站源文件是构成网站的基础,包括HTML、CSS、JavaScript以及服务器端脚本文件。在本案例中,...

    asp页面提示Response 对象 错误 ASP 0156 : 80004005 HTTP 头错误

    其实这类问题就是因为缓存问题,大家可以参考下面的方法解决:有些ASP页面第一次打开的时候会出现Response 对象 错误 ‘ASP 0156 : 80004005’ HTTP 头错误,但刷新后又正常了,解决方法如下 代码如下: Response....

    Apache加速模块mod_pagespeed安装使用详细介绍

    一.mod_pagespeed介绍mod_pagespeed是一个适用于apache httpd的模块,由google发布的开源代码,可以自动完成优化工作,包括优化缓存,减少客户端服务器之间的通讯,降低负载等等。部署mod_pagespeed不用修改任何程序...

    morty:隐私感知的Web内容消毒程序代理即服务

    莫蒂 Web内容消毒器代理即服务 Morty重写网页以排除恶意HTML标记和属性。 它还替换了外部资源引用,以防止第三方信息泄漏。 莫蒂的主要目标是提供一个结果代理 ,但它可以也作为一个独立的消毒服务。... Follow HTT

    《php开发典型模块大全》读书笔记和调试源代码 第四章smarty (张迅雷闪击PHP系列)

    用法与include相似,两者的区别是:使用insert函数载入的内容部会被缓存,每次开启页面都会重新被执行。 {% if $smarty.get.type == 'mr' %} 欢迎光临,{% $smarty.get.type %} {% else %} 对不起,您不是本站VIP,...

    codingce-blog:hexo建立的博客

    Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。hexo-blog, 拉取即用基本配置这是我的个人博客仓库,搭建原理为 +使用的主题是经 修改而来图片储存在 ,目前使用的图床是...

    bootstrap读书笔记之CSS组件(上)

    - **@font-face**:CSS3引入的在线字体技术,允许从服务器缓存字体,使得图标可以像文字一样进行样式设置,如改变颜色。定义字体图标时,需要提供多种格式(如.woff, .eot, .svg等)以适应不同的浏览器。 3. 应用...

    计算机应用技术(实用手册)

    Press f8 for bbs popup 按F8弹出BBS网页 Press ALT+F2 to boot from system Recovery 按ALT+F2进入根录进行设置 PC2-4300 Dual Channel interleaved 双通道技术 Initializing usb Controllers..done 装载USB控制 ...

Global site tag (gtag.js) - Google Analytics