http協議是hyper text transfer protocol(超文字傳輸協議)的縮寫,是用於從全球資訊網(www:world wide web )伺服器傳輸超文字到本地瀏覽器的傳送協議。。http是乙個基於tcp/ip通訊協議來傳遞資料(html 檔案, 檔案, 查詢結果等)。
請求首部字段
名稱說明
if-match
比較etag是否一致
if-none-match
比較etag是否不一致
if-modified-since
比較資源最後更新的時間是否一致
if-unmodified-since
比較資源最後更新的時間是否不一致
響應首部字段
名稱說明
etag
資源匹配識別符號
實體首部字段
名稱說明
expires
http1/1.0.0的遺留物,資源過期的時間,絕對時間
last-modified
資源最後一次更新的時間
根據是否需要向伺服器重新傳送請求,此處分為強制快取和對比快取,對比快取也叫協商快取
對比快取請求資料的流程
強制快取分為兩種情況,expires和cache-control。
使用強快取時,若xx時間內,伺服器資源修改了,或者版本直接更新了,客戶端在沒有強制重新整理的情況下,看到的內容還是舊的;
協商快取每次都要向伺服器驗證一下快取的有效性,不管快取能不能用,都要向伺服器驗證有效性,每次都去請求伺服器,那要快取還有什麼意義;
基於以上問題,實際中,前端都會這樣做:盡可能命中強快取,同時,能在更新版本的時候讓客戶端的快取失效,為了能讓客戶端知道版本已經更新啦,開發人員順便把靜態資源的路徑改了,這樣,就相當於第一次訪問這些資源,就不會存在快取的問題了。而修改資源路徑,當然是webpack的打包時的檔名hash啦!綜上所述,我們可以得出乙個較為合理的快取方案:
Http快取機制
快取快取,就是把需要的東西存起來,不需要每次都去請求。主要目的減小伺服器壓力,放到客戶端上來講,還利於節省流量,還能流暢的把ui顯示出來,提高了使用者體驗。對於http快取來講,主要的就是校驗快取的有效性,也就是新鮮度。如果客戶端不能及時響應服務端的資料變化,快取一直不能被更新,那不就是得不償失了?...
HTTP 快取機制
基於 header的示例 content length 3534http快取策略分為 1 快取策略 cache control 頭里的 public private no cache max age no store 其中no store為不儲存,no cache 0秒的max age 2 快取過期...
http快取機制
首先需要了解http協議的響應頭中的幾個欄位的含義 cache control expires 該欄位表示資源的過期時間。etag 該欄位表示資源的唯一標識。last modified 該欄位表示資源的最後修改時間。有以下2個問題需要注意 為什麼優先校驗etag,後校驗last modified?因...