這篇文章帶給大家的內容是關於瀏覽器快取策略的詳細介紹(圖文),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
為了提高網站的存取速度,使用快取來最佳化。緩存主要分為 強緩存和協商緩存。
協商快取
主要分為last-modified、etag。下面我主要透過程式碼修改來表現各個快取之間的差異。先討論協商快取。 last-modified表示檔案的修改日期,如果檔案做了修改就應該重新取得檔案。 last-modified是檔案修改後根據伺服器的時間產生。
如果我們修改了檔案則會重新取得,status就為200
再刷新就會回傳304表示快取已經是最新不需要再更新。
請求中會詢問相關檔案修改時間(If-Modified-Since)
#請求
#回應
ETag:是一個可以與Web資源關聯的記號(token)
如果檔案被替換,就會產生唯一的etag。取代前的檔案
PS: 如果是使用了多台伺服器做負載平衡的話,會出現etag不一致問題。 Apache 的預設ETag的值總是由檔案的索引節點(Inode)、大小(Size)、最後修改時間(MTime)決定,我們只需要去掉Inode即可
強快取
強快取相比協商快取更為徹底,在強快取下瀏覽器不會對伺服器發起請求。
強快取:
主要分為expires和cache-controlExpires:
表示存在時間,讓客戶端在這個時間之前不去檢查(發送請求),等同max-age的效果。但如果同時存在,則被Cache-Control的max-age覆蓋。格式: Expires :時間,後面跟著一個時間或日期,超過這個時間後快取失效。也就是瀏覽器發出請求之前,會檢查這個時間是否失效,若失效,則瀏覽器會重新發出請求。
no-store 為禁止快取(不得儲存到非揮發性介質,如果有的話盡量移除,用於敏感資訊)
public為大家都可以快取。
private為僅 UA 可快取
以上是瀏覽器快取策略的詳細介紹(圖文)的詳細內容。更多資訊請關注PHP中文網其他相關文章!