If-Modified-Since & If-None-Match

If-Modified-Since,和 Last-Modified 一樣都是用于記錄頁面最后修改時間的 HTTP 頭信息承绸,只是 Last-Modified 是由服務(wù)器往客戶端發(fā)送的 HTTP 頭,而 If-Modified-Since 則是由客戶端往服務(wù)器發(fā)送的頭挣轨,可 以看到军熏,再次請求本地存在的 cache 頁面時,客戶端會通過 If-Modified-Since 頭將先前服務(wù)器端發(fā)過來的 Last-Modified 最后修改時間戳發(fā)送回去卷扮,這是為了讓服務(wù)器端進(jìn)行驗證荡澎,通過這個時間戳判斷客戶端的頁面是否是最新的,如果不是最新的晤锹,則返回新的內(nèi)容摩幔,如果是最新的,則 返回 304 告訴客戶端其本地 cache 的頁面是最新的鞭铆,于是客戶端就可以直接從本地加載頁面了或衡,這樣在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)就會大大減少,同時也減輕了服務(wù)器的負(fù)擔(dān)车遂。

If-None-Match封断,它和ETags(HTTP協(xié)議規(guī)格說明定義ETag為“被請求變量的實體值”,或者是一個可以與Web資源關(guān)聯(lián)的記號)常用來判斷當(dāng)前請求資源是否改變艰额。類似于Last-Modified和HTTP-IF-MODIFIED-SINCE澄港。但是有所不同的是Last-Modified和HTTP-IF-MODIFIED-SINCE只判斷資源的最后修改時間,而ETags和If-None-Match可以是資源任何的任何屬性柄沮,不如資源的MD5等回梧。

ETags和If-None-Match的工作原理是在HTTP Response中添加ETags信息。當(dāng)客戶端再次請求該資源時祖搓,將在HTTP Request中加入If-None-Match信息(ETags的值)狱意。如果服務(wù)器驗證資源的ETags沒有改變(該資源沒有改變),將返回一個304狀態(tài)拯欧;否則详囤,服務(wù)器將返回200狀態(tài),并返回該資源和新的ETags镐作。

ETag如何幫助提升性能藏姐?
聰明的服務(wù)器開發(fā)者會把ETags和GET請求的“If-None-Match”頭一起使用,這樣可利用客戶端(例如瀏覽器)的緩存该贾。因為服務(wù)器首先產(chǎn)生ETag羔杨,服務(wù)器可在稍后使用它來判斷頁面是否已經(jīng)被修改。本質(zhì)上杨蛋,客戶端通過將該記號傳回服務(wù)器要求服務(wù)器驗證其(客戶端)緩存兜材。
其過程如下:
1.客戶端請求一個頁面(A)理澎。
2.服務(wù)器返回頁面A,并在給A加上一個ETag曙寡。
3.客戶端展現(xiàn)該頁面糠爬,并將頁面連同ETag一起緩存。
4.客戶再次請求頁面A举庶,并將上次請求時服務(wù)器返回的ETag一起傳遞給服務(wù)器执隧。
5.服務(wù)器檢查該ETag,并判斷出該頁面自上次客戶端請求之后還未被修改灯变,直接返回響應(yīng)304(未修改——Not Modified)和一個空的響應(yīng)體殴玛。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市添祸,隨后出現(xiàn)的幾起案子滚粟,更是在濱河造成了極大的恐慌,老刑警劉巖刃泌,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凡壤,死亡現(xiàn)場離奇詭異,居然都是意外死亡耙替,警方通過查閱死者的電腦和手機(jī)亚侠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俗扇,“玉大人硝烂,你說我怎么就攤上這事⊥模” “怎么了滞谢?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長除抛。 經(jīng)常有香客問我狮杨,道長,這世上最難降的妖魔是什么到忽? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任橄教,我火速辦了婚禮,結(jié)果婚禮上喘漏,老公的妹妹穿的比我還像新娘护蝶。我一直安慰自己,他們只是感情好翩迈,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布滓走。 她就那樣靜靜地躺著,像睡著了一般帽馋。 火紅的嫁衣襯著肌膚如雪搅方。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天绽族,我揣著相機(jī)與錄音姨涡,去河邊找鬼。 笑死吧慢,一個胖子當(dāng)著我的面吹牛涛漂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播检诗,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼匈仗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了逢慌?” 一聲冷哼從身側(cè)響起悠轩,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎攻泼,沒想到半個月后火架,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡忙菠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年何鸡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片牛欢。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡骡男,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出傍睹,到底是詐尸還是另有隱情隔盛,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布焰望,位于F島的核電站骚亿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏熊赖。R本人自食惡果不足惜来屠,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望震鹉。 院中可真熱鬧俱笛,春花似錦、人聲如沸传趾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浆兰。三九已至磕仅,卻和暖如春珊豹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背榕订。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工店茶, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人劫恒。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓贩幻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親两嘴。 傳聞我的和親對象是個殘疾皇子丛楚,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

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

  • 網(wǎng)絡(luò)特有的延遲以及數(shù)據(jù)傳輸?shù)某杀荆萍s互聯(lián)網(wǎng)快速獲取Web資源憔辫。為此趣些,HTTP協(xié)議引入緩存以空間換時間,使瀏覽器緩...
    大頭8086閱讀 3,060評論 2 12
  • http協(xié)議有http0.9螺垢,http1.0喧务,http1.1和http2三個版本,但是現(xiàn)在瀏覽器使用的是htt...
    一現(xiàn)_閱讀 1,855評論 0 3
  • API定義規(guī)范 本規(guī)范設(shè)計基于如下使用場景: 請求頻率不是非常高:如果產(chǎn)品的使用周期內(nèi)請求頻率非常高枉圃,建議使用雙通...
    有涯逐無涯閱讀 2,521評論 0 6
  • 本文內(nèi)容大多參考《圖解HTTP》一書 一. 認(rèn)識代理服務(wù)器 所以講緩存為什么要先扯代理服務(wù)器功茴?別急,讓我們看一下一...
    流光號船長閱讀 1,913評論 0 10
  • 針對瀏覽器的http緩存的分析也算是老生常談了孽亲,每隔一段時間就會冒出一篇不錯的文章坎穿,其原理也是各大公司面試時幾乎必...
    全端玩法閱讀 877評論 0 9