瀏覽器緩存

今天不嘮嗑了; 直奔主題哈 ; 算法

前言瀏覽器


瀏覽器緩存能夠說是瀏覽器提升性能的一個簡單高效的方式吧 ; 不只提升了網頁加載的速度,提高用戶的體驗; 因爲緩存文件能夠重複的使用,還能夠減小帶寬,減小網絡和服務器的壓力; 緩存

對於一個數據請求能夠簡單爲三個階段:服務器

  1. 瀏覽器發起請求,
  2. 服務器處理並返回,
  3. 瀏覽器接受並響應;網絡

    緩存主要是在前倆個階段來處理! 性能

    對應的尼: 就是一個強緩存和一個協商緩存了;spa

那什麼是強緩存 ,什麼又是協商緩存尼 ?
強緩存:主要經過, cache-control和expires 來決定的。告訴瀏覽器遇到該類請求,直接走緩存。
協商緩存:經過: last-modified,etag ,來表示。當向服務器請求數據的時候,服務會拿時間和etag 來對比下。 若是發現文件沒有改變,則返回304 告訴瀏覽器走本地緩存。 不然正常返回3d

cache-control 字段
在請求是cache-control 可選的字段有:
image.png資源

expires字段 ;
設置過時時間:如: 3dit

last-modified字段
服務端在返回資源時 ,會在該資源最後的更改時間經過last-modified返回給客戶端。客戶端在下次請求資源的時候會帶上這個時間,這個時候服務端會檢查這個時間跟服務端修改的時間是否一致,若是一致則返回 304. 若是不一致則返回200

etag字段光經過 last-modified 來判斷仍是有缺陷的,好比最後的時間該了, 可是內容沒有改 。這個時候咱們就能夠經過使用etag 來判斷服務器經過算法對內容進行計算, 取得一串值, 以後經過etag返回給客戶端。下次客戶端請求是一樣帶上etag 值, 給服務驗證 。相同的話返回304, 不然返回200.

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息