【前端】作為前端應當了解的Web緩存知識

緩存優(yōu)點

通常所說的Web緩存指的是可以自動保存常見http請求副本的http設備越庇。對于前端開發(fā)者來說,瀏覽器充當了重要角色奉狈。除此外常見的還有各種各樣的代理服務器也可以做緩存卤唉。當Web請求到達緩存時,緩存從本地副本中提取這個副本內容而不需要經過服務器仁期。這帶來了以下優(yōu)點:

緩存減少了冗余的數(shù)據(jù)傳輸桑驱,節(jié)省流量

緩存緩解了帶寬瓶頸問題。不需要更多的帶寬就能更快加載頁面

緩存緩解了瞬間擁塞跛蛋,降低了對原始服務器的要求熬的。

緩存降低了距離延時, 因為從較遠的地方加載頁面會更慢一些赊级。

緩存種類

緩存可以是單個用戶專用的押框,也可以是多個用戶共享的。專用緩存被稱為私有緩存此衅,共享的緩存被稱為公有緩存强戴。

私有緩存

私有緩存只針對專有用戶,所以不需要很大空間挡鞍,廉價骑歹。Web瀏覽器中有內建的私有緩存——大多數(shù)瀏覽器都會將常用資源緩存在你的個人電腦的磁盤和內存中。如Chrome瀏覽器的緩存存放位置就在:C:\Users\Your_Account\AppData\Local\Google\Chrome\User Data\Default中的Cache文件夾和Media Cache文件夾墨微。

公有緩存

公有緩存是特殊的共享代理服務器道媚,被稱為緩存代理服務器或代理緩存(反向代理的一種用途)。公有緩存會接受來自多個用戶的訪問,所以通過它能夠更好的減少冗余流量最域。

下圖中每個客戶端都會重復的向服務器訪問一個資源(此時還不在私有緩存中)谴分,這樣它會多次訪問服務器,增加服務器壓力镀脂。而使用共享的公有緩存時牺蹄,緩存只需要從服務器取一次,以后不用再經過服務器薄翅,能夠顯著減輕服務器壓力沙兰。

事實上在實際應用中通常采用層次化的公有緩存,基本思想是在靠近客戶端的地方使用小型廉價緩存翘魄,而更高層次中鼎天,則逐步采用更大、功能更強的緩存在裝載多用戶共享的資源暑竟。

no-store 絕對禁止緩存任何資源斋射,也就是說每次用戶請求資源時,都會向服務器發(fā)送一個請求但荤,每次都會下載完整的資源罗岖。通常用于機密性資源。

關于Cache-Control的使用纱兑,見下面這張圖(來自大額

上文的demo中我們見到過服務器端如何驗證Etag:

由于Etag有服務器構造呀闻,所以在集群環(huán)境中一定要保證Etag的唯一性

If-Modified-Since與Last-Modified

這兩個是HTTP1.0中用來驗證資源是否過期的請求/響應頭,這兩個頭部都是日期潜慎,驗證過程與Etag類似捡多,這里不詳細介紹。使用這兩個頭部來驗證資源是否更新時铐炫,存在以下問題:

有些文檔資源周期性的被重寫垒手,但實際內容沒有改變。此時文件元數(shù)據(jù)中會顯示文件最近的修改日期與If-Modified-Since不相同倒信,導致不必要的響應科贬。

有些文檔資源被修改了,但修改內容并不重要鳖悠,不需要所有的緩存都更新(比如代碼注釋)

關于緩存的更新問題榜掌,請大家看看這里張云龍的回答,本文就不詳細展開了乘综。

本文demo代碼如下:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末憎账,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子卡辰,更是在濱河造成了極大的恐慌胞皱,老刑警劉巖邪意,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異反砌,居然都是意外死亡雾鬼,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門宴树,熙熙樓的掌柜王于貴愁眉苦臉地迎上來策菜,“玉大人,你說我怎么就攤上這事森渐∽鋈耄” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵同衣,是天一觀的道長。 經常有香客問我壶运,道長耐齐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任蒋情,我火速辦了婚禮埠况,結果婚禮上,老公的妹妹穿的比我還像新娘棵癣。我一直安慰自己辕翰,他們只是感情好,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布狈谊。 她就那樣靜靜地躺著喜命,像睡著了一般。 火紅的嫁衣襯著肌膚如雪河劝。 梳的紋絲不亂的頭發(fā)上壁榕,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天,我揣著相機與錄音赎瞎,去河邊找鬼牌里。 笑死,一個胖子當著我的面吹牛务甥,可吹牛的內容都是我干的牡辽。 我是一名探鬼主播,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼敞临,長吁一口氣:“原來是場噩夢啊……” “哼态辛!你這毒婦竟也來了?” 一聲冷哼從身側響起哟绊,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤因妙,失蹤者是張志新(化名)和其女友劉穎痰憎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體攀涵,經...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡铣耘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了以故。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜗细。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖怒详,靈堂內的尸體忽然破棺而出炉媒,到底是詐尸還是另有隱情,我是刑警寧澤昆烁,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布吊骤,位于F島的核電站,受9級特大地震影響静尼,放射性物質發(fā)生泄漏白粉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一鼠渺、第九天 我趴在偏房一處隱蔽的房頂上張望鸭巴。 院中可真熱鬧,春花似錦拦盹、人聲如沸鹃祖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恬口。三九已至,卻和暖如春奔害,著一層夾襖步出監(jiān)牢的瞬間楷兽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工华临, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留芯杀,地道東北人。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓雅潭,卻偏偏與公主長得像揭厚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子扶供,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內容