在由史蒂夫Souders的(at around 14:30)演示"Cache is King",它暗示有在實踐中,只有你應該爲你的資源使用兩個緩存持續時間:「永遠」和「從不」(我自己的術語)。「永遠」和「永不」是唯一有用的緩存持續時間嗎?
- 「永遠」意味着您通過設置非常高的最大年齡(例如一年)有效地使資源永久不變。如果您想在某些時候修改資源,演示文稿建議您只需在另一個URL上發佈修改後的資源。 (建議在此重命名是必要的,部分或全部,因爲大量在互聯網上錯誤配置的代理。)
- 「從不」意味着你有效地禁止一切形式的緩存,並且需要瀏覽器下載資源每次請求。
一方面,Google首席績效工程師給出的任何績效建議都會自行承擔責任。另一方面,由於某種原因(不僅僅是「永遠」和「從不」)將HTTP緩存設計爲可變緩存持續時間,並且僅僅因爲資源已被修改而將URL更改爲資源似乎違背了HTTP。
有「永遠」和「never」中的唯一高速緩存持續時間,你應該在實踐中運用?這是否與網絡上的其他最佳做法相沖突?
除了典型的「帶瀏覽器的用戶」用例外,我還想知道這些原則是如何應用於REST /超媒體API的。
我最喜歡的緩存標頭是'Cache-Control:private,max-age = 0',它可以選擇性地與'ETag'組合成等於資源哈希或資源版本。它在使用Ajax或RESTful API的情況下獲得最佳結果。例如,請參閱[答案](http://stackoverflow.com/a/9269567/315935)。 – Oleg 2014-10-18 21:21:01