關(guān)于HTTP緩存

緩存的目的:

重用已獲取的資源能夠有效的提升網(wǎng)站與應(yīng)用的性能。Web 緩存能夠減少延遲與網(wǎng)絡(luò)阻塞,進而減少顯示某個資源所用的時間。借助 HTTP 緩存榛瓮,Web 站點變得更具有響應(yīng)性

緩存是一種保存資源副本并在下次請求時直接使用該副本的技術(shù)巫击。當 web 緩存發(fā)現(xiàn)請求的資源已經(jīng)被存儲禀晓,它會攔截請求,返回該資源的拷貝坝锰,而不會去源服務(wù)器重新下載粹懒。這樣帶來的好處有:緩解服務(wù)器端壓力,提升性能(獲取資源的耗時更短了)顷级。對于網(wǎng)站來說凫乖,緩存是達到高性能的重要組成部分。緩存需要合理配置弓颈,因為并不是所有資源都是永久不變的:重要的是對一個資源的緩存應(yīng)截止到其下一次發(fā)生改變(即不能緩存過期的資源)帽芽。


Cache-Control:

Cache-Control: no-store

緩存中不得存儲任何關(guān)于客戶端請求和服務(wù)端響應(yīng)的內(nèi)容。每次由客戶端發(fā)起的請求都會下載完整的響應(yīng)內(nèi)容翔冀。

Cache-Control: no-cache

此方式下导街,每次有請求發(fā)出時,緩存會將此請求發(fā)到服務(wù)器(譯者注:該請求應(yīng)該會帶有與本地緩存相關(guān)的驗證字段)纤子,服務(wù)器端會驗證請求中所描述的緩存是否過期搬瑰,若未過期(注:實際就是返回304),則緩存才使用本地緩存副本计福。

Cache-Control: max-age=31536000

過期機制中跌捆,最重要的指令是?"max-age=<seconds>"徽职,表示資源能夠被緩存(保持新鮮)的最大時間象颖。相對Expires而言,max-age是距離請求發(fā)起的時間的秒數(shù)姆钉。針對應(yīng)用中那些不會改變的文件说订,通常可以手動設(shè)置一定的時長以保證緩存有效潮瓶,例如圖片陶冷、css、js等靜態(tài)資源毯辅。

ETag:

該響應(yīng)頭是資源的特定版本的標識符埂伦。這可以讓緩存更高效,并節(jié)省帶寬思恐,因為如果內(nèi)容沒有改變沾谜,Web服務(wù)器不需要發(fā)送完整的響應(yīng)膊毁。

一般配合MD5使用,MD5是消息摘要算法基跑,一種被廣泛使用的密碼散列函數(shù)婚温,可以產(chǎn)生出一個128位(16字節(jié))的散列值(hash value),用于確保信息傳輸完整一致媳否。

語法:ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"

服務(wù)器將客戶端的ETag(作為If-None-Match字段的值一起發(fā)送)與其當前版本的資源的ETag進行比較栅螟,如果兩個值匹配(即資源未更改),服務(wù)器將返回不帶任何內(nèi)容的304未修改狀態(tài)篱竭,告訴客戶端緩存版本可用(新鮮)力图,請求響應(yīng)報文如下:

響應(yīng)
請求

Cache-Control:緩存 與 ETag 的「緩存」有什么區(qū)別?

Cache-Control: max-age=1000 :請求完成掺逼,響應(yīng)完畢后搪哪,響應(yīng)體保存一百秒,時間一到緩存就沒有啦坪圾,需要從新請求服務(wù)器晓折,去拿對應(yīng)的數(shù)據(jù)。100秒期間兽泄,瀏覽器不會再次發(fā)送任何請求漓概,只在本地緩存拿數(shù)據(jù)。

ETag:對比本地與服務(wù)器端的MD5返回值病梢,若一致胃珍,不需要重新加載響應(yīng)體,若不一致(說明文本發(fā)生了改變)則重新下載響應(yīng)體蜓陌。當數(shù)據(jù)沒發(fā)生改變的時候觅彰,每次請求雖然不會重新加載響應(yīng)體,但是還是發(fā)送了請求钮热。

如果資源沒過期填抬,前者根本不會發(fā)送請求,后者會發(fā)送請求隧期。

PS:

①飒责,作為入口,html是不能做緩存的仆潮,html有很多url宏蛉,如果緩存的話,JS性置,CSS等發(fā)生更新變化拾并,用戶不能第一時間獲取最新的版本。

②,如果緩存內(nèi)容在設(shè)置的過期時間內(nèi)發(fā)生變動嗅义,需要更改請求路徑个榕,當路徑發(fā)生改變,瀏覽器就會重新求情芥喇。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末西采,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子继控,更是在濱河造成了極大的恐慌械馆,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件武通,死亡現(xiàn)場離奇詭異霹崎,居然都是意外死亡,警方通過查閱死者的電腦和手機冶忱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門尾菇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人囚枪,你說我怎么就攤上這事派诬。” “怎么了链沼?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵默赂,是天一觀的道長。 經(jīng)常有香客問我括勺,道長缆八,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任疾捍,我火速辦了婚禮奈辰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘乱豆。我一直安慰自己奖恰,他們只是感情好,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布咙鞍。 她就那樣靜靜地躺著房官,像睡著了一般。 火紅的嫁衣襯著肌膚如雪续滋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天孵奶,我揣著相機與錄音疲酌,去河邊找鬼。 笑死,一個胖子當著我的面吹牛朗恳,可吹牛的內(nèi)容都是我干的湿颅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼粥诫,長吁一口氣:“原來是場噩夢啊……” “哼油航!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起怀浆,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤谊囚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后执赡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體镰踏,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年沙合,在試婚紗的時候發(fā)現(xiàn)自己被綠了奠伪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡首懈,死狀恐怖绊率,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情究履,我是刑警寧澤即舌,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站挎袜,受9級特大地震影響顽聂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盯仪,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一紊搪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧全景,春花似錦耀石、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至炕贵,卻和暖如春梆奈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背称开。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工亩钟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乓梨,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓清酥,卻偏偏與公主長得像扶镀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子焰轻,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容

  • API定義規(guī)范 本規(guī)范設(shè)計基于如下使用場景: 請求頻率不是非常高:如果產(chǎn)品的使用周期內(nèi)請求頻率非常高臭觉,建議使用雙通...
    有涯逐無涯閱讀 2,557評論 0 6
  • 網(wǎng)絡(luò)特有的延遲以及數(shù)據(jù)傳輸?shù)某杀荆萍s互聯(lián)網(wǎng)快速獲取Web資源辱志。為此蝠筑,HTTP協(xié)議引入緩存以空間換時間,使瀏覽器緩...
    大頭8086閱讀 3,070評論 2 12
  • 一荸频、前言 緩存可以說是性能優(yōu)化中簡單高效的一種優(yōu)化方式了菱肖。一個優(yōu)秀的緩存策略可以縮短網(wǎng)頁請求資源的距離,減少延遲旭从,...
    浪里行舟閱讀 206,045評論 46 521
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,111評論 1 32
  • http協(xié)議有http0.9稳强,http1.0,http1.1和http2三個版本和悦,但是現(xiàn)在瀏覽器使用的是htt...
    一現(xiàn)_閱讀 1,866評論 0 3