摘要:緩存控制設(shè)置緩存存儲的最大周期,超過這個時間緩存被認為過期單位秒。
Cache-Control
Cache-Control:緩存控制
max-age
s-maxage
private
public
no-cache
no-store
max-age設(shè)置緩存存儲的最大周期,超過這個時間緩存被認為過期(單位秒)。與Expires相反,時間是相對于請求的時間,
優(yōu)先級高于Expires
s-maxage覆蓋max-age 或者 Expires 頭,但是僅適用于共享緩存(比如各個代理),并且私有緩存中它被忽略
只能用于public,如CDN
優(yōu)先級高于max-age
]
private表明響應(yīng)只能被單個用戶緩存,不能作為共享緩存(即代理服務(wù)器不能緩存它),可以緩存響應(yīng)內(nèi)容
自己的服務(wù)器
public表明響應(yīng)可以被任何對象(包括:發(fā)送請求的客戶端,代理服務(wù)器,等等)緩存。
CDN,可以被多個用戶請求
no-cache在釋放緩存副本之前,強制高速緩存將請求提交給原始服務(wù)器進行驗證
這個文件不管怎么樣,都會向服務(wù)器發(fā)起請求,去服務(wù)器哪邊詢問,這個文件有沒有在緩存策略里
no-store緩存不應(yīng)存儲有關(guān)客戶端請求或服務(wù)器響應(yīng)的任何內(nèi)容。
不會使用任何緩存策略
Expires緩存過期時間,用來指定資源的到期時間,是服務(wù)器端的具體的時間點
告訴瀏覽器在過期時間前瀏覽器可以直接從瀏覽器緩存取數(shù)據(jù),而不用再次請求
max-age的優(yōu)化級高于expires,當(dāng)有max-age的時候,會無視expires
當(dāng)在有效時間內(nèi),如果服務(wù)器端的文件已經(jīng)發(fā)生改變,但是瀏覽器端無法感知
Last-Modified/If-Modified-SinceLast-Modified 是一個響應(yīng)首部,其中包含源頭服務(wù)器認定的資源做出修改的日期及時間。 它通常被用作一個驗證器來判斷接收到的或者存儲的資源是否彼此一致。由于精確度比 ETag 要低,所以這是一個備用機制。包含有 If-Modified-Since 或 If-Unmodified-Since 首部的條件請求會使用這個字段。
基于客戶端和服務(wù)端協(xié)商的緩存機制
Last-Modified ----response header
If-Modified-Since----request header
需要與cache-control共同使用
max-age的優(yōu)先級高于Last-Modified
缺點:
某些服務(wù)端不能獲取精確的修改時間
文件修改時間改了,但文件內(nèi)容卻沒有變
效果
勾上disable cache
第一次請求,狀態(tài)碼200,response header里有返回Last-Modified
不勾disable cache
刷新,狀態(tài)碼304,request header里有If-Modified-Since
因為客戶端發(fā)送過來的的Modified與服務(wù)端的Modified一樣,所以使用緩存
Etag/If-None-MatchETagHTTP響應(yīng)頭是資源的特定版本的標識符。這可以讓緩存更高效,并節(jié)省帶寬,因為如果內(nèi)容沒有改變,Web服務(wù)器不需要發(fā)送完整的響應(yīng)。而如果內(nèi)容發(fā)生了變化,使用ETag有助于防止資源的同時更新相互覆蓋(“空中碰撞”)
文件內(nèi)容的hash值
etag--response header
if-none-match -- request header
要與cache-control共同使用
效果
清掉緩存
第一次請求,服務(wù)器返回etag
可以使用緩存
再次請求,客戶端向服務(wù)器發(fā)送if-none-match
因為2個值一樣,所以返回304,讓瀏覽器讀取本地的資源
分級緩存策略 流程圖文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/43289.html
摘要:端優(yōu)談?wù)勱P(guān)于前端的緩存的問題我們都知道對頁面進行緩存能夠有利于減少請求發(fā)送,從而達到對頁面的優(yōu)化。而作為一名有追求的前端,勢必要力所能及地優(yōu)化我們前端頁面的性能。這種方式主要解決了淺談前端中的過早優(yōu)化問題過早優(yōu)化是萬惡之源。 優(yōu)化向:單頁應(yīng)用多路由預(yù)渲染指南 Ajax 技術(shù)的出現(xiàn),讓我們的 Web 應(yīng)用能夠在不刷新的狀態(tài)下顯示不同頁面的內(nèi)容,這就是單頁應(yīng)用。在一個單頁應(yīng)用中,往往只有一...
摘要:前端優(yōu)化已經(jīng)是一個被寫爛的題材了。前端模板方案有很多。重繪是瀏覽器性能優(yōu)化的一個重點,特別是針對的優(yōu)化。如果你對前端性能優(yōu)化有自己的想法,歡迎騷擾我。 前端優(yōu)化已經(jīng)是一個被寫爛的題材了。 雖千萬人吾往矣,這里我僅分享我的一些實踐經(jīng)驗。 歡迎一起交流 歡迎關(guān)注我的個人公眾號,不定期更新自己的工作心得。 showImg(https://segmentfault.com/img/remote...
摘要:前端優(yōu)化已經(jīng)是一個被寫爛的題材了。前端模板方案有很多。重繪是瀏覽器性能優(yōu)化的一個重點,特別是針對的優(yōu)化。如果你對前端性能優(yōu)化有自己的想法,歡迎騷擾我。 前端優(yōu)化已經(jīng)是一個被寫爛的題材了。 雖千萬人吾往矣,這里我僅分享我的一些實踐經(jīng)驗。 歡迎一起交流 歡迎關(guān)注我的個人公眾號,不定期更新自己的工作心得。 showImg(https://segmentfault.com/img/remote...
摘要:前端優(yōu)化已經(jīng)是一個被寫爛的題材了。前端模板方案有很多。重繪是瀏覽器性能優(yōu)化的一個重點,特別是針對的優(yōu)化。如果你對前端性能優(yōu)化有自己的想法,歡迎騷擾我。 前端優(yōu)化已經(jīng)是一個被寫爛的題材了。 雖千萬人吾往矣,這里我僅分享我的一些實踐經(jīng)驗。 歡迎一起交流 歡迎關(guān)注我的個人公眾號,不定期更新自己的工作心得。 showImg(https://segmentfault.com/img/remote...
摘要:淺談網(wǎng)站性能之前端性能優(yōu)化性能優(yōu)化的目的無非是減少用戶流量消耗,提升用戶首屏體驗,提升用戶訪問速度,讓用戶專注內(nèi)容本身。前端性能優(yōu)化減少請求數(shù)量基本原理在瀏覽器與服務(wù)器進行通信時,主要是通過進行通信。 最近項目慢慢走上正軌,需求趨于平穩(wěn),這才想起需要對整站進行性能優(yōu)化。經(jīng)過一段時間的學(xué)習(xí),結(jié)合現(xiàn)在項目的實際性能情況,發(fā)現(xiàn)確實有許多地方可以進行優(yōu)化。于是就開始了我的前端性能優(yōu)化之旅。以下...
閱讀 3163·2021-09-30 09:47
閱讀 2021·2021-09-22 16:04
閱讀 2289·2021-09-22 15:44
閱讀 2546·2021-08-25 09:38
閱讀 547·2019-08-26 13:23
閱讀 1233·2019-08-26 12:20
閱讀 2817·2019-08-26 11:59
閱讀 1085·2019-08-23 18:40