http緩存機制

前言

本文是閱讀文章所做筆記。意在加深記憶也便于日后查找

強緩存和協(xié)商緩存

http的緩存機制可以分為兩種類型:

  • 強緩存:瀏覽器判斷本地緩存未過期变骡,就直接使用仲义,無需發(fā)起http請求
  • 協(xié)商緩存: 瀏覽器判斷本地緩存過期滥玷,發(fā)送http請求为狸,服務器返回304告訴瀏覽器文件未改變,瀏覽器繼續(xù)使用本地緩存

緩存頭部

如何區(qū)分緩存類型呢互捌?主要根據(jù)http頭部字段
屬于強緩存控制:

  • http1.0: Pragma/Expires
  • http1.1: Cache-Control/Max-Age
    ps: Max-Age不是一個頭部潘明,而是Cache-Control的值

屬于協(xié)商緩存控制:

  • http1.0: If-Modified-Since/Last-Modified
  • http1.1: If-None-Match/E-tag

http1.0和http1.1緩存頭部控制的區(qū)別

在http1.0中:

  • Pragma: 嚴格說,他不屬于專門控制緩存的頭部秕噪,但是當其值為no-cache時可以讓本地強緩存失效
  • Expires: 在服務端配置钳降,用于強緩存。用來控制在規(guī)定時間之前腌巾,瀏覽器不需要在發(fā)出請求遂填,直接使用本地緩存铲觉。切Expires是服務端時間
  • If-Modified-Since/Last-Modified: 這兩個是成對出現(xiàn)。屬于協(xié)商緩存吓坚。其中瀏覽器端頭部為If-Modified-Since,服務器端為Last-Modified撵幽。在發(fā)送請求時,如果If-Modified-SinceLast-Modified匹配礁击,那么表示服務器資源為變化盐杂,服務器不會返回當前資源。而是返回頭部哆窿,告知瀏覽器使用本地緩存链烈。Last-Modified是指文件的最后修改時間。只能精確到1s以內挚躯。

在http1.1中:

  • Cache-Control:緩存控制的頭部强衡。有no-cache, max-age,no-store等值。
  • Max-Age:服務器端配置码荔,用于強緩存漩勤,例如Cache-Control=max-age=3600在3600秒內,瀏覽器無需再次發(fā)出請求直接使用本地緩存目胡。他的值是絕對時間锯七,由瀏覽器自己計算。
  • If-None-Match/E-tag: 這個是成對出現(xiàn)的誉己。屬于協(xié)商緩存。其中瀏覽器端頭部為If-None-Match,服務器端為E-tag域蜗。當瀏覽器發(fā)出請求后兩者匹配巨双,則表示服務器端資源未改變,服務器不會返回資源本身霉祸,返回頭部筑累,瀏覽器使用本地緩存。和Last-Modified相比丝蹭。E-tag更精確慢宗。沒有1s的誤差。

Max-Age 和 Expires 區(qū)別

Expires 使用的服務器時間奔穿。當服務器時間和瀏覽器時間不同步時镜沽,可能會發(fā)生緩存無效或一直無法過期的bug。
E-tag 使用的瀏覽器時間贱田。就不會存在上述問題缅茉。

E-tag 和 Last-Modified 區(qū)別

Last-Modified 表示的是文件的最后修改時間,有一個精確1s的缺陷男摧,如果服務端的文件周期性改變蔬墩,會導致緩存失效译打。
E-tag是一種指紋機制。只有文件發(fā)生改變才會變化拇颅。不存在1s的缺陷奏司。

緩存關系圖


緩存關系圖

本文參考:
從輸入URL到頁面加載的過程?如何由一道題完善自己的前端知識體系

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末樟插,一起剝皮案震驚了整個濱河市结澄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌岸夯,老刑警劉巖麻献,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異猜扮,居然都是意外死亡勉吻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門旅赢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來齿桃,“玉大人,你說我怎么就攤上這事煮盼《套荩” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵僵控,是天一觀的道長香到。 經(jīng)常有香客問我,道長报破,這世上最難降的妖魔是什么悠就? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮充易,結果婚禮上梗脾,老公的妹妹穿的比我還像新娘。我一直安慰自己盹靴,他們只是感情好炸茧,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著稿静,像睡著了一般梭冠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上自赔,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天妈嘹,我揣著相機與錄音,去河邊找鬼绍妨。 笑死润脸,一個胖子當著我的面吹牛柬脸,可吹牛的內容都是我干的。 我是一名探鬼主播毙驯,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼倒堕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了爆价?” 一聲冷哼從身側響起垦巴,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铭段,沒想到半個月后骤宣,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡序愚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年憔披,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片爸吮。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡芬膝,死狀恐怖,靈堂內的尸體忽然破棺而出形娇,到底是詐尸還是另有隱情锰霜,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布桐早,位于F島的核電站癣缅,受9級特大地震影響,放射性物質發(fā)生泄漏勘畔。R本人自食惡果不足惜所灸,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望炫七。 院中可真熱鬧,春花似錦钾唬、人聲如沸万哪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奕巍。三九已至,卻和暖如春儒士,著一層夾襖步出監(jiān)牢的瞬間的止,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工着撩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留诅福,地道東北人匾委。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像氓润,于是被迫代替她去往敵國和親赂乐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361