關於緩存
緩存能夠優化加載速度,提高用戶體驗,但同時也可能致使代碼更新不及時生效, 因此一個好的緩存策略對於咱們能夠解決咱們代碼以外的後顧之憂。
Cache-Conttrol和Expires的優先級較條件請求的高。緩存
HTTP緩存頭
- 存在兩個基本的緩存頭,Cache-Control和Expires。
Cache-Control
- Cache-Control是一個複合值,便可以寫成
Cache-Control: public, max-age=31536000
,單位以秒計算。
- public: 資源不單單能夠被客戶端緩存,還能夠被其餘的中間代理器緩存。
- private: 只能夠被客戶端緩存。
Expires
- 設置一個緩存失效的日期,當和max-age同時出現的時候,以max-age爲準。時間格式爲GMT格式。
條件請求
Last-Modified
- 在服務器端設置文件的最後修改時間,請求時自動帶上If-Modified-Since進行比較
ETag
- 值爲MD5 hash,請求時會帶上If-None-Match字段進行比較。
不設置緩存
Cache-Control: no-cache, no-store