據說Web服務器的時鐘必須相同才能使Expires
和Cache-Control
標頭正常工作?這是爲什麼?他們不能關閉1秒鐘或幾分鐘嗎?如果其中一個Web服務器的時鐘稍微偏離,將會緩存嗎?
如果緩存應該是1年有效,那麼幾分鐘甚至幾個小時的時間差就不會在一臺或某些網絡服務器上出現問題?
在documentation有人說:
請注意,爲了這個[緩存]到 工作,所有的應用程序服務器 必須返回相同的時間戳。這 意味着他們必須有他們的時鐘 同步。如果其中一個漂移 不同步,則會隨機看到不同的 時間戳,並且緩存 將不起作用。在那種情況下,瀏覽器 將要求相同的資產超過 ,甚至認爲他們沒有 更改。您可以使用類似 的Live HTTP Headers for Firefox至 驗證緩存確實是 的工作。
如果它是一個像'1232285206'這樣的數字,那麼不應該每一秒都重要嗎? (因爲'?1232285206'和'?1232285207'將會創建不同的URL),即使它精確到秒,也不會出現像一個控制器運行時的情況,時間爲12:03.999997,並且另一臺機器,控制器運行在12:04.000001,因此他們是「關閉」一秒(如果數字被截斷(通過math.floor)) – 2010-07-21 02:02:24
當然,但機會是好的,你的資產不會多次改變一秒 - 他們只需要正確的處理請求。當你改變你的資產時,陳舊的資產可能會被分派幾乎整整一秒。如果你無法容忍一秒鐘的陳舊時間,那麼緩存你的資產並不是一個好主意。但是大多數網站可以處理一秒鐘過時的緩存對象。如果服務器上的時鐘已經關閉了十秒鐘,那麼您可能會發出11秒的陳舊數據。但是,真的,只需運行ntpd,並開心。 :) – sarnold 2010-07-21 02:32:06
感謝您的回答。你的意思是大多數網站可以「處理」一秒過期的緩存對象?是不是瀏覽器決定是否重新加載一些東西?你可以用特定的術語來說明......爲什麼Web服務器不關心幾秒鐘的差異,什麼機制在工作,什麼是極限(10秒?15?) – 2010-07-21 02:51:00