HTTP緩存類型css
200 from cache:直接從本地緩存獲取響應,可細分爲from disk cache, from memory cacheapi
304 Not Modified:協商緩存,本地未命中發送校驗數據到服務端,若是服務端數據沒有改變,則讀取本地緩存響應瀏覽器
200 OK:不讀取緩存,服務器返回完整響應緩存
本地緩存相關Header(Response)服務器
Pragma(1.0):設置爲no-cache時會禁用本地緩存接口
Expires(1.0):值爲格林威治時間,在這個時間前緩存有效無需發送請求圖片
Cache-Control:緩存過時時間間隔ast
no-store:禁止緩存響應配置
no-cache:先發起請求和服務器協商,經過才能緩存響應cache-control
max-age=delta-seconds:告知瀏覽器該響應本地緩存有效的最長期限,以秒爲單位
優先級:Pragma > Cache-Control > Expires
協商緩存相關Header(Response)
Last-Modified:最後修改時間, If-Modified-Since(Request),發送到服務器的驗證時間
ETag:文件的指紋標識符,隨着文件內容改變而改變,If-None-Match(Request),發送到服務器的驗證標識符
適合緩存的內容
直接緩存:js,css,圖片,媒體文件
協商緩存:HTML,常常改變的js,css,圖片,媒體文件
不適合緩存
用戶隱私數據
常常改變的api接口數據
拒絕緩存:使用簽名,如.js?簽名
Nginx
add_header
本地緩存配置
expire:通知瀏覽器過時時長, expire time;
負值:cache-control:no-cache
正值:cache-control:max-age=指定時間
max:cache-control:max-age=10年後
協商緩存配置
Etag on|off,默認是on