前端HTTP緩存

簡(jiǎn)介

在面試的時(shí)候總是遇到緩存相關(guān)問(wèn)題失都,回答總是停留緩存就是從瀏覽器中獲取唱矛,不向服務(wù)器發(fā)送請(qǐng)求,回答的不讓面試官滿意,索性抽點(diǎn)時(shí)間整理一下前端相關(guān)的緩存又官,希望下次回答的時(shí)候能夠多講點(diǎn)模孩。

前端緩存分為強(qiáng)緩存協(xié)商緩存琳要,強(qiáng)緩存就是在緩存未失效時(shí)衫嵌,不在請(qǐng)求服務(wù)端,協(xié)商緩存就是去跟服務(wù)器比較是否需要重新獲取資源 砂心。

強(qiáng)緩存

強(qiáng)緩存分為兩種懈词,Cache-controlExpiresExpires是HTTP1.0的東西计贰,它的值是一個(gè)格林時(shí)間钦睡,比如Expires: Wed, 21 Oct 2015 07:28:00 GMT,由于服務(wù)器端和瀏覽器端的時(shí)間差異問(wèn)題躁倒,瀏覽器比服務(wù)器時(shí)間快荞怒,會(huì)導(dǎo)致緩存失效。Cache-control是HTTP1.1時(shí)代的新東西秧秉,設(shè)置的是一個(gè)相對(duì)時(shí)間褐桌,Cache-Control:public, max-age=31536000,在31536000秒后才緩存才失效象迎,Cache-control有很多取值荧嵌。

  • public: 可以在客戶端和代理服務(wù)緩存
  • private: 只可以在客戶端緩存,,不能在在代理服務(wù)器緩存
  • no-cahce: 要求客戶端提交緩存信息與服務(wù)器端進(jìn)行驗(yàn)證(協(xié)商緩存)
  • no-store: 不使用緩存砾淌,每次都去服務(wù)獲取數(shù)據(jù)
  • max-age=xxx: 緩存多少秒后失效

強(qiáng)緩存在緩存失效內(nèi)啦撮,不會(huì)從原始服務(wù)器獲取新的數(shù)據(jù),假如在緩存時(shí)段內(nèi)服務(wù)器有資源更新汪厨,會(huì)導(dǎo)致資源獲取不及時(shí)赃春。

協(xié)商緩存

協(xié)商緩存有兩組報(bào)文

  • Last-Modified和If-modified-since
  • ETag和If-None-Match


    image.png
  1. Last-Modified和If-modified-since都是時(shí)間格林時(shí)間,當(dāng)請(qǐng)求資源時(shí)劫乱,服務(wù)端會(huì)把資源修改時(shí)間已格林時(shí)間格式放在報(bào)文Last-Modified發(fā)生給客戶端织中,客戶端再次請(qǐng)求資源時(shí)锥涕,會(huì)把上次返回的是Last-Modified的值放在If-modified-since中,服務(wù)端根據(jù)客戶端的If-modified-since的值跟資源修改時(shí)間做判斷狭吼,如果相等的話返回304层坠,從緩存獲取資源,如果不相等返回200刁笙,重新獲取資源破花,重新建立緩存。雖然Last-modifiedIf-modified-since解決了強(qiáng)緩存帶來(lái)的問(wèn)題采盒,但是格林時(shí)間只精確到秒旧乞,如果在1秒發(fā)生多次修改,也會(huì)導(dǎo)致資源獲取不及時(shí)
  2. Etag和If-None-Match磅氨,只有當(dāng)文件發(fā)生變化后Etag的值才會(huì)發(fā)生變化,客戶端訪問(wèn)服務(wù)端時(shí)嫡纠,服務(wù)端把文件的Etag值返回給客戶端烦租,下次客戶端訪問(wèn)時(shí)把上次的Etag值放在If-None-Match,服務(wù)端根據(jù)客戶端的If-None-match值跟資源的Etag值做比較除盏,如果值發(fā)生變化走200叉橱,重新獲取資源和建立緩存,如果相當(dāng)返回304走緩存
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末者蠕,一起剝皮案震驚了整個(gè)濱河市窃祝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌踱侣,老刑警劉巖粪小,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異抡句,居然都是意外死亡探膊,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門待榔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)逞壁,“玉大人,你說(shuō)我怎么就攤上這事锐锣‰绱常” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵雕憔,是天一觀的道長(zhǎng)姿骏。 經(jīng)常有香客問(wèn)我,道長(zhǎng)橘茉,這世上最難降的妖魔是什么工腋? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任姨丈,我火速辦了婚禮,結(jié)果婚禮上擅腰,老公的妹妹穿的比我還像新娘蟋恬。我一直安慰自己,他們只是感情好趁冈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布歼争。 她就那樣靜靜地躺著,像睡著了一般渗勘。 火紅的嫁衣襯著肌膚如雪沐绒。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,482評(píng)論 1 302
  • 那天旺坠,我揣著相機(jī)與錄音乔遮,去河邊找鬼。 笑死取刃,一個(gè)胖子當(dāng)著我的面吹牛蹋肮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播璧疗,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼坯辩,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了崩侠?” 一聲冷哼從身側(cè)響起漆魔,我...
    開(kāi)封第一講書(shū)人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎却音,沒(méi)想到半個(gè)月后改抡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡僧家,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年雀摘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片八拱。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡阵赠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肌稻,到底是詐尸還是另有隱情清蚀,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布爹谭,位于F島的核電站枷邪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏诺凡。R本人自食惡果不足惜东揣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一践惑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嘶卧,春花似錦尔觉、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至钟鸵,卻和暖如春钉稍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背棺耍。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工贡未, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人烈掠。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓羞秤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親左敌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354