F5 和 Ctrl F5 在網頁瀏覽器中觸發的操作是否有標準?
我曾經在IE6和Firefox 2.x中做過實驗。 F5 重新整理將觸發傳送到伺服器的HTTP 要求,其中包含If-Modified-Since
標頭,而Ctrl F5 則不會有這樣一個標題。根據我的理解, F5 將嘗試盡可能利用快取內容,而Ctrl F5 旨在放棄所有快取內容,只是再次從伺服器檢索所有內容。
但今天,我注意到在一些最新的瀏覽器(Chrome、IE8)中它不再以這種方式工作。 F5 和 Ctrl F5 都會傳送 If-Modified-Since
標頭。
那麼這應該如何工作,或者(如果沒有標準)主要瀏覽器在實現這些刷新功能方面有何不同?
這取決於瀏覽器,但它們的行為方式相似。
F5 通常只在頁面被修改時更新頁面。現代瀏覽器發送
Cache-Control: max-age=0
來告訴任何快取資源被視為新鮮的最長時間(相對於請求時間)。CTRL-F5 用於強制更新,忽略任何快取。現代瀏覽器發送
Cache-Control: no-cache
和Pragma: No-cache
如果我沒記錯的話,Netscape 是第一個透過在按下CTRL 時新增
Pragma: No-cache
來新增快取控制支援的瀏覽器-F5。有關Chrome 6.0.472 的注意事項:如果您執行強制重新載入(例如CTRL-F5),則其行為就像URL 在內部一樣標記為始終強制重新載入。如果您轉到網址列並按 Enter 鍵,該標誌將被清除。
一般來說:
即使內容發生更改,F5 也可能會為您提供相同的頁面,因為它可能會從快取載入頁面。但是 Ctrl F5 會強制刷新緩存,並保證如果內容發生更改,您將獲得新內容。