1.緩存前端
2.瀏覽器緩存機制瀏覽器
3.瀏覽器緩存做用緩存
一.緩存服務器
緩存就是數據交換的緩衝區(稱做Cache)。當某一硬件要讀取數據時,會首先從緩存中查找須要的數據,若是找到了則直接執行,找不到的話則從內存中找。ide
Web緩存spa
Web內容能夠緩存在客戶端(瀏覽器)、代理服務器以及服務器端(Server)。代理
從網上找的一張圖幫助你們理解一下代理服務器:code
用戶請求一個頁面,代理服務器會緩存這個頁面,其餘用戶請求這個頁面的時候直接從代理服務器返回,從而減小對Server的請求,也減輕Server處理請求的blog
壓力。內存
白話總結:緩存就是把最經常使用的東西放在最容易取得的地方。
二.瀏覽器緩存機制
1.HTML頁面的Meta標籤
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache" />
上述代碼設置網頁不被緩存,"Cache-Control"是在Http1.1出現的,兼容Http1.0 "Pragma";
這種寫法只有部分瀏覽器能夠支持,並且全部緩存代理服務器都不支持,由於代理服務器不解析HTML內容自己。
2.HTTP協議頭
Cache-Control與Expires的做用一致,都是指明當前資源的有效期,Cache-Control優先級高於Expires。
IIS設置Cache-Control和Expires
設置前:
設置max-age:
設置Expires:
配置Last-Modified/ETag的狀況下,瀏覽器再次訪問統一URL的資源,仍是會發送請求到服務器詢問文件是否已經修改,若是沒有,服務器會只發送一個304回給
瀏覽器,告訴瀏覽器直接從本身本地的緩存取數據;若是修改過那就整個數據從新發給瀏覽器。
Cache-Control/Expires則不一樣,若是檢測到本地的緩存仍是有效的時間範圍內,瀏覽器直接使用本地副本,不會發送任何請求。
Etag(Http1.1)解決的問題:
Etag是服務器自動生成或者由開發者生成的對應資源在服務器端的惟一標識符,可以更加準確的控制緩存。Last-Modified與ETag是能夠一塊兒使用的,服務器會優先
驗證ETag,一致的狀況下,纔會繼續比對Last-Modified,最後才決定是否返回304。
用戶在使用瀏覽器的時候,會有各類操做,好比輸入地址後回車,按F5刷新等,這些行爲會對緩存有什麼影響呢?
沒法被瀏覽器緩存的請求:
推薦網址:http://www.alloyteam.com/ 騰訊Web前端團隊