HTTP快取及其合理使用
阿新 • • 發佈:2019-01-09
詳見:
使用 HTTP 快取:Etag, Last-Modified 與 Cache-Control
稍作總結:
整個 Web 系統架構在 HTTP 協議 之上, 利用 HTTP 的快取機制不僅可以極大地減少伺服器負載, 更重要的是加速頁面的載入,以及減少使用者的流量消耗。 快速到達和易於訪問是 Web 與生俱來的特性, 其快取機制也早已被伺服器和瀏覽器廠商廣泛地實現。Web 伺服器(比如 Tomcat、Apache、Virgo)或伺服器端框架(比如 Django、Express.js) 都會實現 HTTP 快取機制, 涉及到的 HTTP 頭欄位注意包括如下:
Cache-Control , Last-Modified , If-Modified-Since , Etag , If-None-Match
快取設定會導致資源有效性和一致性問題。實踐經驗:
謹慎地使用過期時間,最好配合 MD5 一起使用。
總是啟用條件請求,比如 Etag 或 Last-Modified。
檔案服務採用 Last-Modified,動態內容採用 Etag。
分離經常變化的部分,也會提高快取的命中率。
瀏覽器重新整理頁面:F5或位址列輸入地址會嘗試根據快取設定使用快取;CTRL + F5不適用快取全部從服務端獲取最新資源。