禁用IE緩存


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程序可以編寫如下:

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

//response.setHeader(“Pragma”, “no-cache”);作用相當於上行代碼,通常兩者合用

Expires實體報頭域給出響應過期的日期和時間。為了讓代理服務器或瀏覽器在一段時間以后更新緩存中(再次訪問曾訪問過的頁面時,直接從緩存中加載,縮短響應時間和降低服務器負載)的頁面,我們可以使用Expires實體報頭域指定頁面過期時間。

例:Expires:Thu,15 Sep 2006 16:23:12 GMT

HTTP1.1的客戶端和緩存必須將其他非法的日期格式(包括0)看作已經過期。如:為了讓瀏覽器不要緩存頁面,也可以利用Expires實體報關域,設置為0,jsp程序如下:

response.setDateHeader(“Expires”, “0”);

  //JSP

禁止緩存代碼

 response.setHeader("Pragma", "No-cache");

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

 response.setDateHeader("Expires", 0);

 response.flushBuffer();

 另,網上各種禁客戶端緩存總結如下:

 

 

HTM網頁

  <META   HTTP-EQUIV="pragma"   CONTENT="no-cache">   

  <META   HTTP-EQUIV="Cache-Control"   CONTENT="no-cache,   must-revalidate">   

  <META   HTTP-EQUIV="expires"   CONTENT="Wed,   26   Feb   1997   08:21:57   GMT">

   

  ASP網頁

  <%   

      Response.Expires   =   -1   

      Response.ExpiresAbsolute   =   Now()   -   1          Response.cachecontrol   =   "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   

          response.setHeader("Pragma","No-Cache");   

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

          response.setDateHeader("Expires",   0);   

  C#中禁止cache的方法!   

  Response.Buffer=true;   

  Response.ExpiresAbsolute=System.DateTime.Now.AddSeconds(-1);   

  Response.Expires=0;   

  Response.CacheControl="no-cache";   

在<%@   Page   language="c#"   Codebehind="A.aspx.cs"   AutoEventWireup="false"   Inherits="*.*"   %>下面加上以下的代碼:   

  <%@   OutPutCache   Location="None"%>    能每次頁面Load時都可以清空緩存

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM