您目前已離線,請等候您的網際網路重新連線

如何防止在 Internet Explorer 中快取

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:234067
結論
本文說明控制快取在 Internet Explorer 中的 Web 網頁的 HTTP 標頭的使用。

您可以使用 Microsoft 網際網路資訊伺服器 (IIS),輕鬆地將特定的動態伺服器網頁 」 (ASP) 頁面的極端的開頭使用下列的指令碼的高動態或機密網頁:
<% Response.CacheControl = "no-cache" %><% Response.AddHeader "Pragma", "no-cache" %><% Response.Expires = -1 %>				
其他相關資訊

到期日和到期標頭

強烈建議所有的 Web 伺服器使用一種配置所有 Web 網頁的到期日。它是不好的作法,Web 伺服器不提供透過 HTTP 過期回應標頭傳回給要求用戶端每個資源的到期資訊。大部分的瀏覽器和中繼 proxy 今天遵守此到期資訊並用它來在網路上增加通訊的效率。

到期標頭一律應該用來指定最合理的時間,當伺服器上的特定檔案需要更新用戶端。網頁會定期更新,更新在下一個週期時,最有效率的回應。為例,每日的 [新聞] 頁面便會更新每日,上午 5 在網際網路上這個新聞] 頁面的 Web 伺服器應傳回值的到期日標頭的第二天上午 5。完成此動作後,瀏覽器就不需要再次連絡 Web 伺服器,直到實際上已變更過的頁面。

不應該變更的頁面應該具有到期日大約一年中的標記。

在許多情況下,Web 伺服器會有一或多個動態網頁伺服器上包含正如有變更的資訊。這些網頁應該如此標示伺服器因值為"-1"的到期日標頭。針對使用者的後續要求,Internet Explorer 通常會透過條件式的 If 修改後要求該網頁的更新連絡 Web 伺服器。不過,網頁會留在磁碟快取 (「 暫存網際網路檔案 」),並在適當的情況下使用而沒有連線到遠端的網頁伺服器,例如當用來存取瀏覽歷程記錄的 [上一頁] 和 [下一頁] 按鈕,或瀏覽器處於離線模式。

快取控制標頭

某些特定網頁,不過,也因此動態機密它們需要的任何磁碟快取。為此,Internet Explorer 會支援 HTTP 1.1 快取控制標頭,可防止所有的快取需要特定 Web 資源的無快取值指定由 HTTP 1.1 伺服器時。

因為保留從快取的頁面不是可存取的直到瀏覽器可以重新連線到 Web 伺服器,伺服器應該盡量不要使用快取控制標頭。在大多數情況下,使用"的到期日:-1"偏好。

Pragma: 無快取標頭

不幸的是,舊版的 HTTP 1.0 伺服器無法使用快取控制標頭。為了回溯相容性使用 HTTP 1.0 伺服器的詳細資訊,Internet Explorer 支援特殊的使用方式的 HTTP Pragma: 無快取標頭。如果用戶端與伺服器通訊安全連線 (https://),則伺服器會傳回 Pragma: 無快取的回應,Internet Explorer 的標頭不會快取的回應。

不過請注意,Pragma: 無快取標頭不是這個。根據 HTTP 1.0 和 1.1 規格,此標頭的要求,不回應的內容中定義,而且實際上是針對可能會使一些重要的要求無法到達目的地 Web 伺服器的 proxy 伺服器。對於未來的應用程式,快取控制標頭會是適當的方法,來控制快取。

解釋中繼標記

HTML 網頁,讓特殊解釋表單指定特定 HTTP 標頭從 HTML 文件中的中繼標記。以下是使用這兩個 Pragma 的簡短範例 HTML 網頁: 無快取和到期日:-1:
<HTML><HEAD><META HTTP-EQUIV="Pragma" CONTENT="no-cache"><META HTTP-EQUIV="Expires" CONTENT="-1"></HEAD><BODY></BODY></HTML>				
快取使用安全的連線時才有 Pragma: 無快取可防止。Pragma: 無快取的中繼標記,都會被視為相同的到期日為: 如果在非安全保護的頁面中使用的-1。頁面會快取,但標示為立即過期。

快取控制中繼解釋標記都會被忽略,並在 Internet Explorer 版本 4 或 5 中會有任何影響。若要使用快取控制項必須指定這個標頭,在上面的 [快取控制] 區段中所述使用 HTTP 標頭。

請注意使用標準 HTTP 標頭的比較偏好透過中繼標記。中繼標記通常必須出現在 HTML 標頭區段的上方。而且沒有 Pragma 解釋 META 標籤至少一個已知的問題。 如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
222064 "Pragma: 無快取 」 標籤可能無法防止頁面快取

快取的伺服器選項

當快取控制標頭需要用於非 ASP 網頁時,可能需要使用中的伺服器組態選項來自動新增此標頭。請參閱伺服器文件,以處理程序新增至特定目錄的伺服器回應的 HTTP 標頭。例如,在 IIS 4 中,請遵循下列步驟:
  • 叫用 [網際網路服務管理員。
  • 使用電腦及服務的樹狀目錄,開啟預設 Web 伺服器 (或有問題的 web 伺服器),並尋找包含需要的快取控制標頭的內容的目錄。
  • 顯示該目錄的 [內容] 對話方塊。
  • 選擇 [HTTP 表頭] 索引標籤。
  • 按一下 [自訂 HTTP 標頭群組中的 [新增] 按鈕,新增 「 快取控制 」 標頭名稱和 「 無-快取 」 的標頭值。
請注意整個 Web 伺服器(全域)使用這個標頭並不是個好主意。限制其使用純粹只是絕對必須不會快取在用戶端的內容。您已經套用在這份文件和您的技術問題 ChecklistIf 仍發生問題時快取和 Internet Explorer,請檢閱此檢查清單來逐步解說之前連絡 Microsoft 技術支援部門協助:
  • 您使用快取控制標頭與 ASP"Response.CacheControl"屬性或透過傳回的 HTTP 標頭吗?這是唯一能真正防止 [Internet Explorer 中的快取。
  • 您使用 Internet Explorer 4.01 Service Pack 2 或更高吗?沒有任何方法可以完全避免在舊版的瀏覽器快取。
  • 讓您重複檢查您的 web 伺服器已開啟的 HTTP 1.1,並傳回 Internet Explorer 的 HTTP 1.1 回應吗?快取控制標頭中是無效的 HTTP 1.0 回應。
  • 如果您在伺服器端使用 CGI/ISAPI/Servlets,是完全相同,尤其是在 HTTP 標頭 CRLF 終止相對於下列 HTTP 1.1 規格吗?以效能,Internet Explorer 是通常違反 HTTP 1.1 規格的回應的正確性。這通常會導致略過的標頭] 或 [報表的未預期的伺服器錯誤。
  • HTTP 標頭正確無誤吗?
参考
165150 如何使用 Pragma: IIS 與 IE 無快取
如需有關 HTTP/1.1 的詳細資訊,請造訪下列網站以取得 RFC 2616:

警告:本文為自動翻譯

內容

文章識別碼:234067 - 最後檢閱時間:05/23/2015 19:30:00 - 修訂: 5.0

Microsoft Internet Explorer 4.01 Service Pack 1, Microsoft Internet Explorer 6.0

  • kbcaching kbFAQ kbhowto kbmt KB234067 KbMtzh
意見反應
"76500"; var Ctrl = ""; document.write("