response.setHeader("Cache-Control","no-cache"); 是幹什麼用的[轉]

nighthun發表於2009-03-10

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訊息的值,那麼客戶機可以接收超出超時期指定值之內的響應訊息。

response.setDateHeader("Expires", 0);

expires是response的一個屬性
它可以設定頁面在瀏覽器的快取裡儲存的時間
超過設定的時間後就過期
過期後再次瀏覽該頁面就需要重新請求伺服器傳送頁面資料
如果在規定的時間內再次訪問次頁面
就不需從伺服器傳送 直接從快取中讀取

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/106943/viewspace-1018386/,如需轉載,請註明出處,否則將追究法律責任。

相關文章