HTTP緩存

緩存類型:(私有緩存與共享(代理)緩存)

  1. 瀏覽器緩存:私有緩存
    localStorage例驹;
    sessionStorage赶么;
    cookies瘟仿;
    indexedDB;
    WebSQL研铆;
    http緩存埋同;
    DNS緩存:域名解析返回了正確的IP,系統(tǒng)會臨時把這個返回結(jié)果存儲起來棵红;
  2. 服務(wù)器緩存:
    CDN緩存凶赁;
    反向代理緩存;
    負載均衡器逆甜;
    網(wǎng)關(guān)緩存虱肄;
  3. 數(shù)據(jù)庫緩存:
    在業(yè)務(wù)服務(wù)器和數(shù)據(jù)庫之間增加緩存服務(wù)器redis;
    數(shù)據(jù)庫把數(shù)據(jù)臨時存儲在數(shù)據(jù)庫的一個位置交煞,再次發(fā)起相同請求時直接返回對應(yīng)數(shù)據(jù)咏窿,不用對數(shù)據(jù)庫進行重新查詢;
    緩存目的:
    緩解服務(wù)器端壓力素征,提升效率集嵌;減少等待時間萝挤,節(jié)約帶寬;
    HTTP緩存:
    http緩存只能存儲GET響應(yīng)
    HTTP/1.1緩存控制:
  4. Cache-Control:請求頭和響應(yīng)頭都支持這個屬性
    no-store:沒有緩存根欧,緩存中不得存儲任何關(guān)于客戶端請求和服務(wù)器端響應(yīng)的內(nèi)容怜珍;
    no-cache:緩存但重新驗證,客戶端發(fā)出請求凤粗,緩存將帶有驗證的請求發(fā)送給服務(wù)器端酥泛,服務(wù)器端驗證請求中的緩存是否過期,未過期返回304侈沪,緩存才使用本地緩存副本揭璃;
    private:私有緩存,不能被中間代理亭罪,CDN緩存瘦馍;
    public:公共緩存;
    max-age=<seconds>:過期時間应役;
    must-revalidate:驗證緩存是否過期情组;
  5. Pragma:向后兼容基于HTTP/1.1的客戶端,響應(yīng)頭中沒有明確定義
    緩存驅(qū)逐:
    由于緩存只有有限的空間用于存儲資源副本箩祥,所以緩存會定期地將一些副本刪除院崇。
    新鮮度:
    過期時間
    本地檢索到一個對應(yīng)的陳舊資源(緩存副本),緩存將請求帶有If-No-Match頭發(fā)送給服務(wù)器端袍祖,服務(wù)器端返回304底瓣,則表示緩存副本為新鮮的
    服務(wù)器通過 If-None-Match 或 If-Modified-Since判斷后發(fā)現(xiàn)已過期,那么會帶有該資源的實體內(nèi)容返回
    改進資源
    緩存驗證:
    用戶點擊刷新按鈕會開始緩存驗證蕉陋;
    緩存的響應(yīng)頭帶有Cache-control: must-revalidate捐凭;
    瀏覽器偏好設(shè)置里設(shè)置Advanced->Cache為強制驗證緩存。
    當(dāng)緩存的文檔過期之后凳鬓,需要進行緩存驗證或者重新獲取資源茁肠,服務(wù)器端返回校驗器才開始驗證。
    ETags:強校驗器
    Etag的值對中間代理User Agent是不透明的一個值缩举,如果響應(yīng)頭中帶有Etag垦梆,請求時可以帶上If-None-Match來驗證緩存
    Last-Modified:弱校驗器(只精確到秒)
    如果響應(yīng)頭中帶有Last-Modified,請求時可以帶上If-Modified-Since來驗證緩存
    當(dāng)向服務(wù)端發(fā)起緩存校驗時仅孩,服務(wù)端會返回http狀態(tài)碼托猩,200 ok表示正常的結(jié)果或者304 not modified表示可以從本地緩存文件獲取資源,304的響應(yīng)頭同時也可以更新緩存文檔的過期時間辽慕。
    Vary響應(yīng):
    當(dāng)緩存服務(wù)器收到一個請求站刑,只有當(dāng)前的請求和原始(緩存)的請求頭跟緩存的響應(yīng)頭里的Vary都匹配,才能使用緩存的響應(yīng)鼻百。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绞旅,一起剝皮案震驚了整個濱河市摆尝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌因悲,老刑警劉巖堕汞,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異晃琳,居然都是意外死亡讯检,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門卫旱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來人灼,“玉大人,你說我怎么就攤上這事顾翼⊥斗牛” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵适贸,是天一觀的道長灸芳。 經(jīng)常有香客問我,道長拜姿,這世上最難降的妖魔是什么烙样? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮蕊肥,結(jié)果婚禮上谒获,老公的妹妹穿的比我還像新娘。我一直安慰自己壁却,他們只是感情好究反,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著儒洛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狼速。 梳的紋絲不亂的頭發(fā)上琅锻,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機與錄音向胡,去河邊找鬼恼蓬。 笑死,一個胖子當(dāng)著我的面吹牛僵芹,可吹牛的內(nèi)容都是我干的处硬。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼拇派,長吁一口氣:“原來是場噩夢啊……” “哼荷辕!你這毒婦竟也來了凿跳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤疮方,失蹤者是張志新(化名)和其女友劉穎控嗜,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骡显,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡疆栏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了惫谤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片壁顶。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖溜歪,靈堂內(nèi)的尸體忽然破棺而出若专,到底是詐尸還是另有隱情,我是刑警寧澤痹愚,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布富岳,位于F島的核電站,受9級特大地震影響拯腮,放射性物質(zhì)發(fā)生泄漏窖式。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一动壤、第九天 我趴在偏房一處隱蔽的房頂上張望萝喘。 院中可真熱鬧,春花似錦琼懊、人聲如沸阁簸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽启妹。三九已至,卻和暖如春醉旦,著一層夾襖步出監(jiān)牢的瞬間饶米,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工车胡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留檬输,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓匈棘,卻偏偏與公主長得像丧慈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子主卫,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349