2009-07-27 67 views
6

我一直在尋找的標準 - 但不完全確信以下幾點:最大年齡和304不變形處理

如果我們有一個變體是送達(資源,圖片,網頁等)緩存設置爲max-age = 259200(3天),服務器也在處理ETags和上次修改日期 - 那麼當達到max-age時會發生什麼 - 但是資源沒有被修改?

我希望會發生的事情是,3天后 - 客戶端將再次請求資源 - 如果它沒有改變將收到304未修改的響應。如果緩存控制響應(在304響應期間)仍然包含max-age = 259200 - 那麼我希望客戶端將繼續使用其本地緩存副本,而不是再次請求另外3天。

我恐怕會發生的是,一旦達到最大年齡 - 客戶端將不再緩存資源 - 每次資源加載時發出一個新的請求 - 之後是304 Not Modified響應,如果資源尚未修改。即我們現在正在爲每次使用獲取http請求,而不是使用本地緩存另外3天。

想法?

回答

3

它會緩存3天以上。 RFC 2616 10.3.5

如果緩存使用收到304響應更新緩存條目,緩存必須更新條目,以反映響應給出任何新的字段值。

Details about age calculation

+0

謝謝!這將教會我更仔細地閱讀規格並使用更大的字體大小:-)。 – 2009-07-27 11:14:44