HTTP緩存

Http 緩存機(jī)制作為 web 性能優(yōu)化的重要手段,有如下作用:

  • 減少網(wǎng)絡(luò)帶寬消耗:無論對于網(wǎng)站運(yùn)營者或者用戶迁霎,帶寬都代表著金錢吱抚,過多的帶寬消耗,只會便宜了網(wǎng)絡(luò)運(yùn)營商考廉。當(dāng)Web緩存副本被使用時秘豹,只會產(chǎn)生極小的網(wǎng)絡(luò)流量,可以有效的降低運(yùn)營成本昌粤。
  • 降低服務(wù)器壓力:給網(wǎng)絡(luò)資源設(shè)定有效期之后既绕,用戶可以重復(fù)使用本地的緩存,減少對源服務(wù)器的請求涮坐,間接降低服務(wù)器的壓力凄贩。同時,搜索引擎的爬蟲也能根據(jù)過期機(jī)制降低爬取的頻率袱讹,也能有效降低服務(wù)器的壓力疲扎。
  • 減少網(wǎng)絡(luò)延遲评肆,加快頁面打開速度:帶寬對于個人網(wǎng)站運(yùn)營者來說是十分重要,而對于大型的互聯(lián)網(wǎng)公司來說瓜挽,可能有時因?yàn)殄X多而真的不在乎。那Web緩存還有作用嗎久橙?答案是肯定的,對于最終用戶缸榄,緩存的使用能夠明顯加快頁面打開速度祝拯,達(dá)到更好的體驗(yàn)。

以下是對HTTP中控制客戶端緩存的幾種方式以及優(yōu)先級的梳理

強(qiáng)制緩存

瀏覽器在請求已經(jīng)訪問過的URL的時候, 會判斷是否使用緩存, 判斷是否使用緩存主要通過判斷緩存是否在有效期內(nèi), 通過兩個字段來判斷:

  • Expires, 有效期, 返回的是一個GMT時間鹰贵,這是一個絕對時間, 但是使用的是客戶端時間, 與服務(wù)器時間存在一定時間差
  • Cache-Control => max-age, 最大有效時間,這是一個相對時間, 單位是s, 優(yōu)先級比expires高, 為了解決expires時間差的問題而出現(xiàn)的

對比緩存

當(dāng)緩存過期后, 瀏覽器不會直接去服務(wù)器上拿緩存, 而是判斷緩存是否有更新, 能否繼續(xù)使用, 判斷的方法有兩種:

  • Last-Modified 和 If-Modified-Since: 服務(wù)器會響應(yīng)一個Last-Modified字段, 表示最近一次修改緩存的時間, 當(dāng)緩存過期后, 瀏覽器就會把這個時間放在If-Modified-Since去請求服務(wù)器, 判斷緩存是否有更新
  • Etag和If-None-Match: 服務(wù)器會響應(yīng)一個Etag字段, 一個表示文件唯一的標(biāo)識符, 一旦文件更新, Etag也會跟著更改, 當(dāng)緩存過期后, 瀏覽器會把這個唯一標(biāo)識符放在If-None-Match去請求服務(wù)器, 判斷是否有更新, Etag的優(yōu)先級比Last-Modified的更高

那么既生Last-Modified何生Etag碉输?你可能會覺得使用Last-Modified已經(jīng)足以讓瀏覽器知道本地的緩存副本是否足夠新亭珍,為什么還需要Etag(實(shí)體標(biāo)識)呢?HTTP1.1中Etag的出現(xiàn)主要是為了解決幾個Last-Modified比較難解決的問題

  • Last-Modified標(biāo)注的最后修改只能精確到秒級阻荒,如果某些文件在1秒鐘以內(nèi)峭范,被修改多次的話,它將不能準(zhǔn)確標(biāo)注文件的修改時間
  • 如果某些文件會被定期生成纱控,當(dāng)有時內(nèi)容并沒有任何變化,但Last-Modified卻改變了舶掖,導(dǎo)致文件沒法使用緩存
  • 有可能存在服務(wù)器沒有準(zhǔn)確獲取文件修改時間尔店,或者與代理服務(wù)器時間不一致等情形

參考:
徹底弄懂HTTP緩存機(jī)制及原理
知乎專欄-瀏覽器是如何控制緩存的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末主慰,一起剝皮案震驚了整個濱河市共螺,隨后出現(xiàn)的幾起案子情竹,更是在濱河造成了極大的恐慌,老刑警劉巖秦效,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阱州,死亡現(xiàn)場離奇詭異,居然都是意外死亡犀概,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門阱冶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人至耻,你說我怎么就攤上這事〕就牵” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵互广,是天一觀的道長惫皱。 經(jīng)常有香客問我,道長旅敷,這世上最難降的妖魔是什么颤霎? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮晴音,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锤躁。我一直安慰自己,他們只是感情好加缘,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布觉啊。 她就那樣靜靜地躺著,像睡著了一般勋乾。 火紅的嫁衣襯著肌膚如雪嗡善。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天各吨,我揣著相機(jī)與錄音袁铐,去河邊找鬼。 笑死剔桨,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瑰谜。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼萨脑,長吁一口氣:“原來是場噩夢啊……” “哼砚哗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起砰奕,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仅淑,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涯竟,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡庐船,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了揩瞪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片篓冲。...
    茶點(diǎn)故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖嗤攻,靈堂內(nèi)的尸體忽然破棺而出诽俯,到底是詐尸還是另有隱情,我是刑警寧澤暴区,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響浪讳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜淹遵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一透揣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧辐真,春花似錦崖堤、人聲如沸耐床。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽堪嫂。三九已至,卻和暖如春皆串,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背娇唯。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工寂玲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拓哟。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓断序,卻偏偏與公主長得像,于是被迫代替她去往敵國和親违诗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評論 2 349

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

  • 網(wǎng)絡(luò)特有的延遲以及數(shù)據(jù)傳輸?shù)某杀救壮矗萍s互聯(lián)網(wǎng)快速獲取Web資源阵苇。為此,HTTP協(xié)議引入緩存以空間換時間绅项,使瀏覽器緩...
    大頭8086閱讀 3,059評論 2 12
  • 本文內(nèi)容大多參考《圖解HTTP》一書 一. 認(rèn)識代理服務(wù)器 所以講緩存為什么要先扯代理服務(wù)器快耿?別急芳绩,讓我們看一下一...
    流光號船長閱讀 1,909評論 0 10
  • 1. 緩存的分類 緩存分為服務(wù)端緩存和客戶端緩存 服務(wù)端緩存又分為代理服務(wù)器緩存和反向代理服務(wù)器緩存(也叫網(wǎng)關(guān)緩存...
    lemonCode閱讀 344評論 0 0
  • 時間:2016-12-12 17:51:30作者: zhongxia 零示括、前言 這里主要寫的是理論痢畜,具體實(shí)踐的比較...
    izhongxia閱讀 271評論 0 1
  • 什么,玩?zhèn)€玩具還有必要看書丁稀? 首先,說到書籍线衫,我們說的不是樂高的產(chǎn)品目錄手冊凿可,或者套裝搭建說明書,這些固然占了樂高...
    彩色螞蟻閱讀 20,671評論 2 38