2012-08-31 164 views
11

由於我們的網絡服務器配置錯誤,主域發送302重定向到新的位置。我們解決了這個問題。清空瀏覽器緩存時,現在一切正常。在瀏覽器中保存302重定向多久?

對於沒有清空緩存的「普通」客戶端:302瀏覽器中保存了多久的302重定向?

回答

14

它不應該被緩存,除非還有一個Cache-ControlExpires頭由Web服務器返回。根據RFC 2616, section 10.3.3 302 Found

請求的資源暫時駐留在不同的URI下。由於重定向有時可能會發生變化,因此客戶端應該繼續使用Request-URI來處理將來的請求。如果由Cache-Control或Expires標頭字段指示,此響應僅可緩存。

+2

謝謝。看起來像我的默認測試瀏覽器(Chrome)只是騙了我這個:http://code.google.com/p/chromium/issues/detail?id=103458(Chrome緩存,其他人不) –

+3

@OleAlbers我正要編輯我的答案與筆記(在我的互聯網去世之前),雖然RFC說,客戶端**應該繼續使用原始的URI,它並不意味着所有的瀏覽器會,它將需要被視爲一個就事論事。 –

0

這取決於個人客戶端的瀏覽器緩存設置:IE瀏覽器有一個「從不」檢查新頁面的選項,它對重定向具有相同的效果。
和AFAIR IE的「自動」設置(默認值?)並沒有太大的改善。

9

Jon Lin引用的標準在這裏使用「SHOULD」,這是RFC lingo中的not as strong as "MUST"。這不僅僅是一種理論上的失望;的CloudFlare,例如,does cache redirects

如果沒有提供緩存的頭信息(無緩存控制或過期),並且 網址是可高速緩存(.JPG,的CSS,的.js等),則高速緩存的CloudFlare既 301和302s。我們緩存301幾個小時,302個緩存一段時間(約20分鐘)。

因此,您應該確保您可以處理它或使用明確的標題(例如Cache-Control: private, no-cache)來指導瀏覽器和中間體緩存它。

+0

是的,這是我的問題 - 沒有指定'Cache-Control'導致緩存重定向。可以看看這個線程,以更全面的看待指定no-cache頭部:https://stackoverflow.com/questions/49547/how-to-control-web-page-caching-across-all-browsers –