如何使用HTTP標題控制IE快取 轉

2021-04-12 23:37:04 字數 3149 閱讀 6722

概要

本文介紹如何使用 http 標題來控制 internet explorer 中 web 頁的快取。

通過 microsoft internet information server (iis),您可以在特定 active server pages (asp) 頁的最開始位置,使用以下指令碼**方便地標記高度易變頁或敏感頁:

<% response.cachecontrol = "no-cache" %>

<% response.addheader "pragma", "no-cache" %>

<% response.expires = -1 %>

當伺服器上的特定檔案需要由客戶端更新時,應始終使用 expires 標題來指定最合理的時間。如果定期更新頁,則下乙個更新週期將是最有效的響應。例如,假設 internet 上的某個每日新聞頁在每天早晨 5 點更新。此新聞頁的 web 伺服器應返回乙個帶有第二天早晨 5 點這一值的 expires 標題。這樣,在該頁實際更改之前,瀏覽器就不必再聯絡 web 伺服器。

預期不進行更改的頁應使用約為一年的過期日期進行標記。

回到頂端

cache-control 標題

不過,有些頁非常易變或者非常敏感,以至於它們不需要磁碟快取。為解決這一問題,internet explorer 提供了對 http 1.1 cache-control 標題的支援,當 http 1.1 伺服器指定 no-cache 值時,這可以完全防止快取特定的 web 資源。

由於在瀏覽器重新聯絡 web 伺服器之前無法訪問不在快取中的頁,因此伺服器應慎用 cache-control 標題。在多數情況下,使用「expires:-1」較為可取。

回到頂端

pragma:no-cache 標題

遺憾的是,舊式 http 1.0 伺服器不能使用 cache-control 標題。為了向後相容 http 1.0 伺服器,internet explorer 對 http pragma:no-cache 標題的使用提供了特殊支援。如果客戶端通過安全連線 (https://) 與伺服器通訊,且伺服器在響應中返回 pragma:no-cache 標題,則 internet explorer 不會快取此響應。

不過請注意,pragma:no-cache 標題不是為此而設計的。根據 http 1.0 和 1.1 規範,此標題僅在請求的上下文中定義,而不是在響應的上下文中定義,它實際上適用於可能阻止某些重要請求到達目標 web 伺服器的**伺服器。對於將來的應用程式,cache-control 標題是控制快取的適當手段。

回到頂端

http-equiv meta 標記

html 頁允許使用特殊的 http-equiv 形式的 meta 標記,它可在 html 文件中指定特定的 http 標題。下面是乙個簡短的 html 頁示例,該頁同時使用了 pragma:no-cache 和 expires: -1:

pragma:no-cache 僅當在安全連線中使用時才防止快取。如果在非安全頁中使用,pragma:no-cache meta 標記的處理方式與 expires:-1 相同。該頁將被快取,但被標記為立即過期。

在 internet explorer 版本 4 或 5 中,cache-control meta http-equiv 標記被忽略且沒有任何作用。要使用 cache-control,必須按照上文 cache-control 部分所介紹的方法,使用 http 標題來指定 cache-control 標題。

請注意,使用標準的 http 標題比使用 meta 標記可取得多。meta 標記通常必須出現在 html head 部分的頂部。而且,已知 pragma http-equiv meta 標記至少存在乙個問題。有關其他資訊,請參閱以下 microsoft 知識庫文章:

222064 「pragma:no-cache」標記可能無法防止頁面被快取

伺服器快取選項 當需要在非 asp 頁上使用 cache-control 標題時,可能有必要使用伺服器配置中的選項自動新增此標題。請參閱您的伺服器文件,以了解如何將 http 標題新增到針對特定目錄的伺服器響應。例如,在 iis 4 中,請按照下列步驟操作: ? 呼叫 internet 服務管理器。

? 使用計算機和服務樹,開啟預設的 web 伺服器(或所討論的 web 伺服器),查詢包含需要 cache-control 標題的內容的目錄。

? 調出此目錄的「屬性」對話方塊。

? 選中「http 標題」選項卡。

? 單擊「自定義 http 標題」組中的「新增」按鈕,為標題名新增「cache-control」,並為標題值新增「no-cache」。

165150 how to use pragma:no-cache with iis and ie

另請參見 hypertext transfer protocol -- http/1.1 -- draft revision 5(超文字傳輸協議 -- http/1.1 -- 草案修訂版 5)。

回到頂端

這篇文章中的資訊適用於:? microsoft internet explorer 4.0 128-bit edition

? microsoft internet explorer 4.01 service pack 2

? microsoft internet explorer 4.01 service pack 1

? microsoft internet explorer 4.01 service pack 2

? microsoft internet explorer 5.0

? microsoft internet explorer 5.5

? microsoft internet explorer 6.0

? microsoft internet explorer 6.0 service pack 1

回到頂端關鍵字:  kbhowto kbcaching kbfaq kb234067

回到頂端

microsoft和/或其各**商對於為任何目的而在本伺服器上發布的檔案及有關圖形所含資訊的適用性,不作任何宣告。 所有該等檔案及有關圖形均"依樣"提供,而不帶任何性質的保證。microsoft和/或其各**商特此宣告,對所有與該等資訊有關的保證和條件不負任何責任,該等保證和條件包括關於適銷性、符合特定用途、所有權和非侵權的所有默示保證和條件。在任何情況下,在由於使用或執行本伺服器上的資訊所引起的或與該等使用或執行有關的訴訟中,microsoft和/或其各**商就因喪失使用、資料或利潤所導致的任何特別的、 

如何控制IE的行為

下面演示乙個控制ie進行重新整理的方法 第一步 建立 shdocvw ishellwindowsptr m spshwinds if m spshwinds null 第二步 獲取當前所有開啟的ie視窗 if m spshwinds 第三步 重新整理ie視窗 pbrowser refresh pbr...

怎樣在Web開發中完美控制IE標題欄

ie以及任何目前瀏覽器的 標題欄,原本都應該是由這個html標籤來控制的,當然現在仍然也是。只是目前的鬼趨勢是,你最好不要再重新整理你的網頁頁面了,然後還需要接受使用者的任意蹂躪。這也就是傳說中神龍見首不見尾,殺人於無影無形的悖時ajax技術!在瀏覽器的標題欄中顯示貼切的頁面標題,是乙個網頁專業的表...

怎樣在Web開發中完美控制IE標題欄

ie以及任何目前瀏覽器的標題欄,原本都應該是由這個html標籤來控制的,當然現在仍然也是。只是目前的鬼趨勢是,你最好不要再重新整理你的網頁頁面了,然後還需要接受使用者的任意蹂躪。這也就是傳說中神龍見首不見尾,殺人於無影無形的悖時ajax技術!在瀏覽器的標題欄中顯示貼切的頁面標題,是乙個網頁專業的表現...