2024年1月22日发(作者:)
禁用IE缓存
/**
* @author iam00@
* @version 1.0
*/
HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。
普通报头中的Cache-Control用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求中未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制),HTTP1.0使用的类似的报头域为Pragma。
请求时的缓存指令包括: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、s-maxage。
例:为了指示IE浏览器(客户端)不要缓存页面,服务器端的jsp程序可以编写如下:
der(“Cache-Control”, “no-cache”);
//der(“Pragma”, “no-cache”);作用相当于上行代码,通常两者合用
Expires实体报头域给出响应过期的日期和时间。为了让代理服务器或浏览器在一段时间以后更新缓存中(再次访问曾访问过的页面时,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用Expires实体报头域指定页面过期时间。例:Expires:Thu,15 Sep
2006 16:23:12 GMT
HTTP1.1的客户端和缓存必须将其他非法的日期格式(包括0)看作已经过期。如:为了让浏览器不要缓存页面,也可以利用Expires实体报关域,设置为0,jsp程序如下:
eHeader(“Expires”, “0”);
//JSP禁止缓存代码
der("Pragma", "No-cache");
der("Cache-Control", "no-cache");
eHeader("Expires", 0);
uffer();
另,网上各种禁客户端缓存总结如下:
HTM网页
ASP网页
<%
s = -1
sAbsolute = Now() - 1
ontrol = "no-cache"
%>
PHP网页
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
JSP
der("Pragma","No-Cache");
der("Cache-Control","No-Cache");
eHeader("Expires", 0);
C#中禁止cache的方法!
=true;
sAbsolute=onds(-1);
s=0;
ontrol="no-cache";
在<%@ Page language="c#" Codebehind="" AutoEventWireup="false"
="*.*" %>下面加上以下的代码:
<%@ OutPutCache Location="None"%> 能每次页面Load时都可以清空缓存
Inherits


发布评论