2010-12-23 45 views

回答

6

通常用於防止緩存。然而,該文件可能會爲您提供更好的解釋:

http://download.oracle.com/docs/cd/E13158_01/alui/wci/docs103/devguide/tsk_pagelets_settingcaching_httpexpires.html

引述:

不要使用過期= 0,以防止 緩存。 Expires頭由 遠程服務器發送,並由Portal Server通過 發送給瀏覽器。 除非所有三臺機器上的時間同步,否則Expires = 0標頭可能會錯誤地返回緩存的內容。 要解決此問題,請將Expires 標頭設置爲明確過去的固定日期,即 。

+0

恐怕這是不正確的。請參閱http://stackoverflow.com/questions/11357430/http-expires-header-values-0-and-1以獲得更好的解釋。 – user123444555621 2012-12-18 05:02:47

0

設置緩存過期標題。這告訴瀏覽器允許它們在被重新獲取之前緩存多久。

我相信0意味着它永不過期,這可能會導致各種問題。我相信單位是秒。另一方面可能意味着它不能被緩存。

5

緩存如何工作(除其他外)是您向瀏覽器發送一個標題,告訴它頁面內容何時到期。這意味着如果您發送如下頭文件:

header("Expires Sunday June 10th 2011"); // not correct timestamp 

內容在該日期之前不會「過期」。然後瀏覽器可以使用緩存技術從瀏覽器本地提供頁面,而不必再次下載所有內容。

當您將過期設置爲0時,它可以確保下次瀏覽器加載頁面時,它會下載內容,從而使您獲得第二個數據。但是,正如你從其他答案中看到的那樣,你不應該發送0來防止緩存,而是發送一個過去的日期。

-1

一些瀏覽器不斷重新加載樣式表,JavaScript和其他seldomnly修改文件,加載一個網站時,這會導致討厭的延遲(Safari瀏覽器在Mac OS就是一個例子)

告訴瀏覽器文件保存在緩存中的至少有一天,你可以使用 這有一個很好的副作用告訴其他瀏覽器,從不刷新頁面,至少每天刷新一次。

2

「過期:0」表示緩存將始終將此條目視爲陳舊(即,在將其返回給客戶端之前,它需要先對其進行重新驗證)。根據HTTP/1.1 RFC(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21)中的Expires標頭的定義: 「HTTP/1.1客戶端和高速緩存必須像過去一樣處理其他無效的日期格式,特別是包括值」0「(即,「已經過期」)。「