我們有幾個文件通過HTTP提供服務,並且會隨時更改。哪些是可以更改內容的最佳緩存相關HTTP標頭?
哪些是與緩存相關的HTTP標頭,我們應該在HTTP響應中返回以優化瀏覽器加載速度,同時強制瀏覽器驗證它是否具有文件的最新版本?
我們已經設置了過期日期的「過期」標題(似乎此時已達成共識)。
但後來有人建議設置這個頭:
Cache-Control: no-cache, no-store, must-revalidate
但與此頭的問題是,它可以防止瀏覽器保持文件的本地副本,因此文件被下載每次,甚至如果它沒有改變,用200響應代碼。
如果我只是用:
Cache-Control: no-cache
然後,瀏覽器(至少火狐14和Chrome 20)保留一個本地副本,發送If-Modified-Since
和If-None-Match
頭,服務器返回一個304碼和文件內容沒有下載。 這是可隨時更改這些文件的最佳行爲。
問題是,我不知道設置「no-cache」是否足以強制所有瀏覽器(包括舊的,但仍然使用的版本)和代理服務器重新驗證其本地緩存副本與服務器。
最後,Pragma: no-cache
頭怎麼樣?它是否也應該包含在HTTP響應中呢?
如果您有答案,您應該自己寫答案並將其標記爲答案,而不是在問題中以粗體添加陳述。 – 2016-03-27 01:50:51
@AlexisWilke大膽的陳述不是我的問題的答案,這只是我想強調的一點。 – 2016-03-29 08:56:52