HTTP緩存

使用緩存的優(yōu)點:
減少冗余數(shù)據(jù)的傳輸:傳輸重復(fù)的數(shù)據(jù)线脚;
緩解帶寬瓶頸問題:網(wǎng)絡(luò)為本地客戶端提供的帶寬要比遠(yuǎn)程服務(wù)器要寬粟瞬,因此傳輸速度更快短荐;
降低對服務(wù)器的要求:更快的響應(yīng)速度
降低距離時延:路由器時延并闲;本身時延细睡;
緩存命中,未命中帝火,再驗證:

緩存命中溜徙,未命中湃缎,再驗證

速度: 緩存命中>緩存再驗證成功>緩存未命中=緩存再驗證失敗蠢壹;

緩存再驗證命中:304 Not Modified;
緩存再驗證未命中:200 OK
服務(wù)器對象被刪除:404 Not Found
命中率: 文檔命中率(緩存命中率)嗓违,字節(jié)命中率;
區(qū)分命中和未命中:
緩存命中和服務(wù)器正常響應(yīng)都是 200 OK;
客戶端可以使用響應(yīng)的Date首部與當(dāng)前時間進行比較,如果Date首部中時間較早图贸,就可以認(rèn)為這是一條緩存蹂季;
緩存的拓?fù)浣Y(jié)構(gòu):
公有緩存;
私有緩存疏日;
私有緩存: 單個用戶專享偿洁;多個客戶端的重復(fù)請求
公有緩存(代理緩存):共享的緩存;減少冗余數(shù)據(jù)量的傳輸沟优;

私有緩存

共享緩存

代理緩存的層次的結(jié)構(gòu):
在較小的緩存中的未命中的請求會被導(dǎo)向較大的父緩存涕滋;緩存鏈過長會有性能損耗;
緩存的處理步驟:
(1)接收:緩存從網(wǎng)絡(luò)中讀取抵達(dá)的請求報文净神;
(2)解析:緩存對請求報文進行解析何吝;提取各種URL和各種首部;
(3)查詢:緩存查看是否有本地副本可用鹃唯,如果沒有爱榕,就向服務(wù)器獲取一份副本,保存在本地坡慌;
(4)新鮮度檢測:緩存查看已緩存的副本是否新鮮黔酥,如果不新鮮,就詢問服務(wù)器是否有任何更新洪橘;
(5)創(chuàng)建響應(yīng)
(6)發(fā)送
(7)日志
客戶端第一次請求
客戶端第一次請求

客戶端再次請求

客戶端再次請求

緩存過期: Expires首部和Cache-Control:max-age首部跪者;
Expires首部:HTTP/1.0+ Expires;絕對時間熄求;依賴于計算機的時鐘設(shè)置渣玲;
max-age首部:HTTP/1.1;相對時間;

兩種首部

服務(wù)器再驗證:文檔過期并不代表緩存中的文檔和服務(wù)器上的文檔在內(nèi)容上有實際的出入弟晚;只是代表需要進行再驗證的時間到了忘衍;
如果再驗證顯示文檔內(nèi)容沒有發(fā)生變化,緩存只需要獲取首部卿城,包含一個新的過期時間枚钓,并對緩存中的首部進行更新就行了;
如果再驗證顯示文檔內(nèi)容發(fā)生了變化瑟押,重新獲取緩存搀捷,存儲緩存即可;
兩種驗證過期的方式
If-Modified-Since:Last-Modified 再驗證
If-None-Match:Etag 再驗證
If-Modified-Since:Last-Modified 的缺陷:
(1)有些文檔會被周期性重寫多望,但是實際內(nèi)容是一樣的嫩舟;盡管內(nèi)容沒變氢烘,還是會導(dǎo)致Last-Modified改變;
(2)Last-Modified 的時間精度為秒家厌,對于時間精度下的修改無法起作用威始;
(3)有些服務(wù)器無法判斷Last-Modified
Etag:文檔的指紋信息,文檔的校驗和等等像街;
強弱驗證器:
強驗證器:只要內(nèi)容發(fā)生了變化,強驗證器就會發(fā)生變化晋渺;
弱驗證器(HTTP/1.1支持):如果只對少部分內(nèi)容進行修改镰绎,弱驗證器不會發(fā)生變化;
弱驗證器帶有W/
弱驗證器緩存首部

使用時機:
(1)響應(yīng)帶有Etag實體標(biāo)簽木西,客戶端就必須使用Etag實體標(biāo)簽驗證畴栖;
(2)響應(yīng)帶有Last-Modified ,客戶端可以使用If-Modified-Since驗證八千;
(3)兩者都有吗讶,就必須同時驗證,并且兩者都滿足才會返回304恋捆;
控制緩存的能力:
HTTP/1.1
no-store:禁止緩存響應(yīng)照皆;
no-cache: 可以緩存響應(yīng),但是沒有進行緩存新鮮度再驗證之前沸停,不可以把緩存提供給客戶端膜毁;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市愤钾,隨后出現(xiàn)的幾起案子瘟滨,更是在濱河造成了極大的恐慌,老刑警劉巖能颁,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杂瘸,死亡現(xiàn)場離奇詭異,居然都是意外死亡伙菊,警方通過查閱死者的電腦和手機败玉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來占业,“玉大人绒怨,你說我怎么就攤上這事∏玻” “怎么了南蹂?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長念恍。 經(jīng)常有香客問我六剥,道長晚顷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任疗疟,我火速辦了婚禮该默,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘策彤。我一直安慰自己栓袖,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布店诗。 她就那樣靜靜地躺著裹刮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪庞瘸。 梳的紋絲不亂的頭發(fā)上捧弃,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天,我揣著相機與錄音擦囊,去河邊找鬼违霞。 笑死,一個胖子當(dāng)著我的面吹牛瞬场,可吹牛的內(nèi)容都是我干的买鸽。 我是一名探鬼主播,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼贯被,長吁一口氣:“原來是場噩夢啊……” “哼癞谒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起刃榨,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤弹砚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后枢希,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桌吃,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年苞轿,在試婚紗的時候發(fā)現(xiàn)自己被綠了茅诱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡搬卒,死狀恐怖瑟俭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情契邀,我是刑警寧澤摆寄,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響微饥,放射性物質(zhì)發(fā)生泄漏逗扒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一欠橘、第九天 我趴在偏房一處隱蔽的房頂上張望矩肩。 院中可真熱鬧,春花似錦肃续、人聲如沸黍檩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽建炫。三九已至,卻和暖如春疼蛾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背艺配。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工察郁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人转唉。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓皮钠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赠法。 傳聞我的和親對象是個殘疾皇子麦轰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,982評論 2 361

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

  • 本文內(nèi)容大多參考《圖解HTTP》一書 一. 認(rèn)識代理服務(wù)器 所以講緩存為什么要先扯代理服務(wù)器?別急砖织,讓我們看一下一...
    流光號船長閱讀 1,937評論 0 10
  • 1. 緩存的分類 緩存分為服務(wù)端緩存和客戶端緩存 服務(wù)端緩存又分為代理服務(wù)器緩存和反向代理服務(wù)器緩存(也叫網(wǎng)關(guān)緩存...
    lemonCode閱讀 347評論 0 0
  • 網(wǎng)絡(luò)特有的延遲以及數(shù)據(jù)傳輸?shù)某杀究钋郑萍s互聯(lián)網(wǎng)快速獲取Web資源。為此侧纯,HTTP協(xié)議引入緩存以空間換時間新锈,使瀏覽器緩...
    大頭8086閱讀 3,074評論 2 12
  • 每個瀏覽器都自帶了 HTTP 緩存實現(xiàn)功能。您只需要確保每個服務(wù)器響應(yīng)都提供正確的 HTTP 標(biāo)頭指令眶熬,以指示瀏覽...
    _july77閱讀 288評論 0 0
  • 前言 上一章我們主要講述了如何利用服務(wù)器實現(xiàn)群聊.本章主要學(xué)習(xí)是從客戶端的角度簡單實現(xiàn)群聊功能. 步驟: 1, 導(dǎo)...
    Alexander閱讀 1,179評論 0 0