久草免费在线观看-久草免费在线色站-久草免费在线视频-久草免费资源-天堂网中文在线-天堂网中文字幕

歡迎來到酷云建站平臺,全網(wǎng)營銷云系統(tǒng)加盟中心!

海量企業(yè)網(wǎng)站模板 · 任您選擇

美出特色,精出品質(zhì),一切為了企業(yè)更好的營銷

隱藏側(cè)欄
Beta
轉(zhuǎn)載

大型web站點緩存策略經(jīng)驗總結(jié)

       建站經(jīng)驗     2016-02-17     eycms     125     0    

大型web應(yīng)用緩存必不可少,本文我們講了前端本地緩存,服務(wù)器端緩存,HTTP緩存機制,CDN緩存,html5離線存儲等緩存策略。

緩存策略
  瀏覽器端的緩存規(guī)則
  對于瀏覽器端的緩存來講,這些規(guī)則是在HTTP協(xié)議頭和HTML頁面的Meta標(biāo)簽中定義的。他們分別從新鮮度和校驗值兩個維度來規(guī)定瀏覽器是否可以直接使用緩存中的副本,還是需要去源服務(wù)器獲取更新的版本。
  新鮮度(過期機制):也就是緩存副本有效期。一個緩存副本必須滿足以下條件,瀏覽器會認(rèn)為它是有效的,足夠新的:
   含有完整的過期時間控制頭信息(HTTP協(xié)議報頭),并且仍在有效期內(nèi);
   瀏覽器已經(jīng)使用過這個緩存副本,并且在一個會話中已經(jīng)檢查過新鮮度
  滿足以上兩個情況的一種,瀏覽器會直接從緩存中獲取副本并渲染。
  校驗值(驗證機制):服務(wù)器返回資源的時候有時在控制頭信息帶上這個資源的實體標(biāo)簽Etag(Entity Tag),它可以用來作為瀏覽器再次請求過程的校驗標(biāo)識。如過發(fā)現(xiàn)校驗標(biāo)識不匹配,說明資源已經(jīng)被修改或過期,瀏覽器需求重新獲取資源內(nèi)容。

一個重要的概念

緩存命中率:一個緩存的有效性是依照緩存的命中率來度量。它是根據(jù)得到數(shù)據(jù)請求次數(shù)與所有請求次數(shù)的比率。緩存命中率高意味著有很高的比率數(shù)據(jù)是從緩存中獲取到數(shù)據(jù)的。
  Web緩存的作用
  減少網(wǎng)絡(luò)帶寬消耗
   降低服務(wù)器壓力
  減少網(wǎng)絡(luò)延遲,加快頁面打開速度
  HTTP緩存機制
  緩存行為主要由緩存策略決定,而緩存策略由內(nèi)容擁有者設(shè)置。這些策略主要通過特定的HTTP頭部來清晰地表達(dá)。
  當(dāng)一個用戶發(fā)起一個靜態(tài)資源請求的時候,瀏覽器會通過以下幾步來獲取資源:
   本地緩存階段:先在本地查找該資源,如果有發(fā)現(xiàn)該資源,而且該資源還沒有過期,就使用這一個資源,完全不會發(fā)送http請求到服務(wù)器;
  協(xié)商緩存階段:如果在本地緩存找到對應(yīng)的資源,但是不知道該資源是否過期或者已經(jīng)過期,則發(fā)一個http請求到服務(wù)器,然后服務(wù)器判斷這個請求,如果請求的資源在服務(wù)器上沒有改動過,則返回304,讓瀏覽器使用本地找到的那個資源;
   緩存失敗階段:當(dāng)服務(wù)器發(fā)現(xiàn)請求的資源已經(jīng)修改過,或者這是一個新的請求(在本來沒有找到資源),服務(wù)器則返回該資源的數(shù)據(jù),并且返回200, 當(dāng)然這個是指找到資源的情況下,如果服務(wù)器上沒有這個資源,則返回404。
用戶操作行為與緩存
  瀏覽器中的操作對緩存的影響:
   強制刷新 ? 當(dāng)按下ctrl+F5來刷新頁面的時候, 瀏覽器將繞過各種緩存(本地緩存和協(xié)商緩存), 直接讓服務(wù)器返回最新的資源;
  普通刷新 ? 當(dāng)按下F5來刷新頁面的時候,瀏覽器將繞過本地緩蹲來發(fā)送請求到服務(wù)器, 此時, 協(xié)商緩存是有效的
   回車或轉(zhuǎn)向 ? 當(dāng)在地址欄上輸入回車或者按下跳轉(zhuǎn)按鈕的時候, 所有緩存都生效
  本地緩存階段
  Expires
  指定緩存到期GMT的絕對時間,如果設(shè)了max-age,max-age就會覆蓋expires。如果expires到期需要重新請求。
  Cache-Control
  Cache-Control:這個是http 1.1中為了彌補 Expires 缺陷新加入的。
  對已緩存的內(nèi)容進(jìn)行控制:
  Cache-control: public表示緩存的版本可以被代理服務(wù)器或者其他中間服務(wù)器識別。
  Cache-control: private意味著這個文件對不同的用戶是不同的。只有用戶自己的瀏覽器能夠進(jìn)行緩存,公共的代理服務(wù)器不允許緩存。
  Cache-control: no-cache意味著文件的內(nèi)容不應(yīng)當(dāng)被緩存。這在搜索或者翻頁結(jié)果中非常有用,因為同樣的URL,對應(yīng)的內(nèi)容會發(fā)生變化。
  其他相關(guān)控制字段:
  max-age: 指定緩存過期的相對時間秒數(shù),max-ag=0或者是負(fù)值,瀏覽器會在對應(yīng)的緩存中把Expires設(shè)置為1970-01-01 08:00:00 。
  s-maxage: 類似于max-age,只用在共享緩存上,比如proxy.
  public: 通常情況下需要http身份驗證的情況,響應(yīng)是不可cahce的,加上public可以使它被cache。
  no-cache: 強制瀏覽器在使用cache拷貝之前先提交一個http請求到源服務(wù)器進(jìn)行確認(rèn)。這對身份驗證來說是非常有用的,能比較好的遵守 (可以結(jié)合public進(jìn)行考慮)。它對維持一個資源總是最新的也很有用,與此同時還不完全喪失cache帶來的好處),因為它在本地是有拷貝的,但是在用之前都進(jìn)行了確認(rèn),這樣http請求并未減少,但可能會減少一個響應(yīng)體。
  no-store: 告訴瀏覽器在任何情況下都不要進(jìn)行cache,不在本地保留拷貝。
  must-revalidate: 強制瀏覽器嚴(yán)格遵守你設(shè)置的cache規(guī)則。
  proxy-revalidate: 強制proxy嚴(yán)格遵守你設(shè)置的cache規(guī)則。
  用法舉例: Cache-Control: max-age=3600, must-revalidate
  cache:使用本地緩存,不發(fā)生請求。
  協(xié)商緩存階段
  Last-Modified & if-modified-since
  Last-Modified與If-Modified-Since是一對報文頭,屬于http 1.0。
  last-modified是WEB服務(wù)器認(rèn)為對象的最后修改時間,比如文件的最后修改時間,動態(tài)頁面的最后產(chǎn)生時間。
  ETag & If-None-Match
  ETag與If-None-Match是一對報文,屬于http 1.1。
  ETag可以用來解決這種問題。ETag是一個文件的唯一標(biāo)志符。就像一個哈希或者指紋,每個文件都有一個單獨的標(biāo)志,只要這個文件發(fā)生了改變,這個標(biāo)志就會發(fā)生變化。
  ETag機制類似于樂觀鎖機制,如果請求報文的ETag與服務(wù)器的不一致,則表示該資源已經(jīng)被修改過來,需要發(fā)最新的內(nèi)容給瀏覽器。
  同時使用這兩個報文頭,在完全匹配If-Modified-Since和If-None-Match即檢查完修改時間和Etag之后,如都與服務(wù)器的相符,服務(wù)器返回304,否則,發(fā)送最新內(nèi)容給瀏覽器。
  Etag/lastModified過程如下:
  1.客戶端請求一個頁面(A)。
  2.服務(wù)器返回頁面A,并在給A加上一個Last-Modified/ETag。
  3.客戶端展現(xiàn)該頁面,并將頁面連同Last-Modified/ETag一起緩存。
  4.客戶再次請求頁面A,并將上次請求時服務(wù)器返回的Last-Modified/ETag一起傳遞給服務(wù)器。
  5.服務(wù)器檢查該Last-Modified或ETag,并判斷出該頁面自上次客戶端請求之后還未被修改,直接返回響應(yīng)304和一個空的響應(yīng)體。
   304:通過If-Modified-Since If-Match判斷資源是否修改,如未修改則返回304,發(fā)生了一次請求,但請求內(nèi)容長度為0,節(jié)省了帶寬。 如果有多臺負(fù)載均衡的服務(wù)器,不同服務(wù)器計算出的Etag可能不同,這樣就會造成資源的重復(fù)加載。
  Etag 主要為了解決 Last-Modified 無法解決的一些問題:
  1、一些文件也許會周期性的更改,但是他的內(nèi)容并不改變(僅僅改變的修改時間),這個時候我們并不希望客戶端認(rèn)為這個文件被修改了,而重新GET;
 2、某些文件修改非常頻繁,比如在秒以下的時間內(nèi)進(jìn)行修改,(比方說1s內(nèi)修改了N次),If-Modified-Since能檢查到的粒度是s級的,這種修改無法判斷(或者說UNIX記錄MTIME只能精確到秒);
  3、某些服務(wù)器不能精確的得到文件的最后修改時間。
  其他標(biāo)簽
  Content-Length:盡管并沒有在緩存中明確涉及,Content-Length頭部在設(shè)置緩存策略時很重要。某些軟件如果不提前獲知內(nèi)容的大小以留出足夠空間,則會拒絕緩存該內(nèi)容。
  Vary:緩存系統(tǒng)通常使用請求的主機和路徑作為存儲該資源的鍵。當(dāng)判斷一個請求是否是請求同樣內(nèi)容時,Vary頭部可以被用來提醒緩存系統(tǒng)需要注意另一個附加頭部。它通常被用來告訴緩存系統(tǒng)同樣注意Accept-Encoding頭部,以便緩存系統(tǒng)能夠區(qū)分壓縮和未壓縮的內(nèi)容。
  服務(wù)器端緩存
  CDN緩存
  CDN緩存,也叫網(wǎng)關(guān)緩存、反向代理緩存。瀏覽器先向CDN網(wǎng)關(guān)發(fā)起WEB請求,網(wǎng)關(guān)服務(wù)器后面對應(yīng)著一臺或多臺負(fù)載均衡源服務(wù)器,會根據(jù)它們的負(fù)載請求,動態(tài)地請求轉(zhuǎn)發(fā)到合適的源服務(wù)器上。

CDN緩存策略

CDN邊緣節(jié)點緩存策略因服務(wù)商不同而不同,但一般都會遵循h(huán)ttp標(biāo)準(zhǔn)協(xié)議,通過http響應(yīng)頭中的Cache-control: max-age的字段來設(shè)置CDN邊緣節(jié)點數(shù)據(jù)緩存時間。
  當(dāng)客戶端向CDN節(jié)點請求數(shù)據(jù)時,CDN節(jié)點會判斷緩存數(shù)據(jù)是否過期,若緩存數(shù)據(jù)并沒有過期,則直接將緩存數(shù)據(jù)返回給客戶端;否則,CDN節(jié)點就會向源站發(fā)出回源請求(back to the sourcerequest),從源站拉取最新數(shù)據(jù),更新本地緩存,并將最新數(shù)據(jù)返回給客戶端。
  CDN服務(wù)商一般會提供基于文件后綴、目錄多個維度來指定CDN緩存時間,為用戶提供更精細(xì)化的緩存管理。
CDN緩存時間會對“回源率”產(chǎn)生直接的影響。若CDN緩存時間較短,CDN邊緣節(jié)點上的數(shù)據(jù)會經(jīng)常失效,導(dǎo)致頻繁回源,增加了源站的負(fù)載,同時也增大的訪問延時;若CDN緩存時間太長,會帶來數(shù)據(jù)更新時間慢的問題。開發(fā)者需要增對特定的業(yè)務(wù),來做特定的數(shù)據(jù)緩存時間管理。
  CDN緩存刷新CDN邊緣節(jié)點對開發(fā)者是透明的,相比于瀏覽器Ctrl+F5的強制刷新來使瀏覽器本地緩存失效,開發(fā)者可以通過CDN服務(wù)商提供的“刷新緩存”接口來達(dá)到清理CDN邊緣節(jié)點緩存的目的。這樣開發(fā)者在更新數(shù)據(jù)后,可以使用“刷新緩存”功能來強制CDN節(jié)點上的數(shù)據(jù)緩存過期,保證客戶端在訪問時,拉取到最新的數(shù)據(jù)。
  CDN的優(yōu)勢
   CDN節(jié)點解決了跨運營商和跨地域訪問的問題,訪問延時大大降低;
  大部分請求在CDN邊緣節(jié)點完成,CDN起到了分流作用,減輕了源站的負(fù)載。
  CDN緩存的缺點
  當(dāng)網(wǎng)站更新時,如果CDN節(jié)點上數(shù)據(jù)沒有及時更新,即便用戶再瀏覽器使用Ctrl +F5的方式使瀏覽器端的緩存失效,也會因為CDN邊緣節(jié)點沒有同步最新數(shù)據(jù)而導(dǎo)致用戶訪問異常。
  Combo服務(wù)
  Combo服務(wù),也就是我們在最終拼接生成頁面資源引用的時候,并不是生成多個獨立的link標(biāo)簽,而是將資源地址拼接成一個url路徑,請求一種線上的動態(tài)資源合并服務(wù),從而實現(xiàn)減少HTTP請求的需求。
  /??fle1,file2,file3,...的url請求響應(yīng)就是動態(tài)combo服務(wù)提供的,它的原理很簡單,就是根據(jù)url找到對應(yīng)的多個文件,合并成一個文件來響應(yīng)請求,并將其緩存,以加快訪問速度。
  但它也存在一些缺陷:
  瀏覽器有url長度限制,因此不能無限制的合并資源。
  如果用戶在網(wǎng)站內(nèi)有公共資源的兩個頁面間跳轉(zhuǎn)訪問,由于兩個頁面的combo的url不一樣導(dǎo)致用戶不能利用瀏覽器緩存來加快對公共資源的訪問速度。如果combo的url中任何一個文件發(fā)生改變,都會導(dǎo)致整個url緩存失效,從而導(dǎo)致瀏覽器緩存利用率降低。
  HTML5緩存思路
  HTML5離線應(yīng)用緩存manifest
  用戶可離線訪問你的應(yīng)用,這對于無法隨時保持聯(lián)網(wǎng)狀態(tài)的移動終端用戶來說尤其重要
   用戶訪問本地的緩存文件,通常意味著更快的訪問速度
  僅僅加載被修改過的資源,避免同一資源對服務(wù)器多次的請求,大大降低了對服務(wù)器的訪問壓力manifest文件羅列了需要被緩存的文件清單。


--結(jié)束END--

本文鏈接: http://www.u0rvp.cn/station/experience/1186.html (轉(zhuǎn)載時請注明來源鏈接)

 
本文標(biāo)簽: 全部

下班PC閱讀不方便?

手機也可以隨時學(xué)習(xí)開發(fā)

微信關(guān)注公眾號“酷云”
"酷云平臺前端開發(fā)教學(xué)"
每日干貨技術(shù)分享
 

×

成為 酷云平臺 代理商!

關(guān)注

微信
關(guān)注

微信掃一掃
獲取最新優(yōu)惠信息

酷云平臺公眾號

客服

聯(lián)系
客服

很高興為您服務(wù)
尊敬的用戶,歡迎您咨詢,我們?yōu)樾掠脩魷?zhǔn)備了優(yōu)惠好禮。 咨詢客服

聯(lián)系客服:

在線QQ: 3206174

客服電話: 0516-83703228

售前咨詢 售后服務(wù)
在線交談 智能小云

工作時間:

周一至周五: 09:00 - 17:00

WAP

手機
訪問

移動端訪問
手機上也能選模板

酷云平臺手機端

九九精品久久久久久久久| 99久久精品国产高清一区二区| 午夜久久网| 久久福利影视| 日韩在线观看视频免费| 久久国产精品自由自在| 高清一级淫片a级中文字幕 | 欧美爱色| 日韩综合| 沈樵在线观看福利| 日本伦理网站| 精品国产香蕉在线播出| 欧美激情一区二区三区中文字幕| 久草免费在线视频| 日韩欧美一及在线播放| 欧美大片aaaa一级毛片| 成人a级高清视频在线观看| 青草国产在线观看| 日韩在线观看视频免费| 四虎影视久久久| 欧美a级片免费看| 久久成人亚洲| 久久99青青久久99久久| 可以在线看黄的网站| 国产亚洲精品aaa大片| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩在线观看免费| 亚洲精品影院| 一级女性大黄生活片免费| 精品久久久久久影院免费| 日本免费区| 一级片片| 成人a大片高清在线观看| 91麻豆精品国产综合久久久| 麻豆系列 在线视频| 日韩免费片| 九九九网站| 天天色色网| 青青青草视频在线观看| 天天做日日爱| 青青久久精品国产免费看| 久久国产一久久高清| 色综合久久久久综合体桃花网| 精品国产三级a| 国产欧美精品| 国产精品自拍在线| 精品视频在线观看一区二区| 四虎影视库| 99久久精品国产免费| 午夜精品国产自在现线拍| 日韩专区亚洲综合久久| a级毛片免费观看网站| 中文字幕一区二区三区精彩视频| 国产精品自拍亚洲| 99热精品在线| 精品久久久久久综合网| 99色吧| 国产不卡福利| 亚洲精品永久一区| 精品视频免费看| 精品国产香蕉在线播出| 成人免费观看男女羞羞视频| 麻豆网站在线免费观看| 尤物视频网站在线| 精品毛片视频| 黄视频网站免费看| 成人高清视频免费观看| 日本在线www| 精品久久久久久中文字幕一区| 日日爽天天| 国产伦久视频免费观看 视频| 欧美激情一区二区三区视频高清| 日韩av成人| 久久成人亚洲| 精品视频免费在线| 成人a级高清视频在线观看| 日韩一级精品视频在线观看| 一级片片| 欧美a级v片不卡在线观看| 欧美a级片视频| 精品在线视频播放| 青青青草影院| 国产美女在线一区二区三区| 精品国产亚洲人成在线| 久草免费资源| 九九九国产| 日日夜夜婷婷| 欧美激情一区二区三区视频高清| 亚洲爆爽| 国产一级生活片| 精品国产一区二区三区久| 国产欧美精品| 麻豆网站在线免费观看| 日韩中文字幕在线亚洲一区| 午夜在线亚洲| 精品久久久久久中文字幕一区| 国产伦久视频免费观看视频| 午夜在线影院| 欧美激情中文字幕一区二区| 在线观看成人网| 韩国三级视频在线观看| 香蕉视频一级| 欧美激情一区二区三区视频 | 国产网站免费视频| 国产一区二区精品久久| 久久福利影视| 欧美激情一区二区三区中文字幕| 国产麻豆精品高清在线播放| 你懂的日韩| 国产麻豆精品高清在线播放| 国产亚洲精品aaa大片| 日本乱中文字幕系列| 国产91精品系列在线观看| 成人av在线播放| 色综合久久手机在线| 久久精品店| 国产一区二区精品久久91| 免费一级片在线| 精品国产一区二区三区久| 日本特黄特色aaa大片免费| 999久久久免费精品国产牛牛| 亚洲第一色在线| 你懂的在线观看视频| 欧美国产日韩在线| 日日日夜夜操| 日本免费区| 999精品视频在线| 国产综合91天堂亚洲国产| 国产国语在线播放视频| 色综合久久手机在线| 免费毛片播放| 一级毛片视频免费| 日韩在线观看视频免费| 国产网站免费在线观看| 欧美激情伊人| 精品国产一区二区三区久久久蜜臀| 四虎影视久久久免费| 欧美一级视频免费| 韩国三级一区| 久久精品店| a级毛片免费观看网站| 久久国产精品只做精品| 国产一区二区精品久久91| 欧美a级成人淫片免费看| 国产精品自拍一区| 天天做日日爱夜夜爽| 九九国产| 日日日夜夜操| 成人免费网站久久久| 精品久久久久久中文字幕一区| 国产一区二区精品| 在线观看导航| 国产91精品一区| 精品视频在线观看免费| 成人高清视频免费观看| 国产精品免费久久| 一本高清在线| 久久99中文字幕| 精品美女| 精品视频免费观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产成人精品影视| 国产原创视频在线| 欧美另类videosbestsex视频 | 九九久久国产精品| 国产麻豆精品高清在线播放| 欧美大片一区| 成人av在线播放| 精品久久久久久影院免费| 国产成a人片在线观看视频| 台湾美女古装一级毛片| 成人免费网站视频ww| 欧美电影免费看大全| 精品毛片视频| 国产综合91天堂亚洲国产| 国产91精品系列在线观看| 日韩专区第一页| 日本免费看视频| 四虎影视精品永久免费网站| 美女免费精品高清毛片在线视| 国产精品1024在线永久免费 | 青青久热| 欧美激情一区二区三区视频| 九九久久国产精品大片| 精品在线观看国产| 久久成人亚洲| 欧美激情在线精品video| 午夜在线观看视频免费 成人| 久久福利影视| 久久精品店| 精品国产亚洲人成在线| 成人av在线播放| 国产亚洲精品成人a在线| 一级女性全黄生活片免费 | 黄视频网站免费| 亚飞与亚基在线观看| 91麻豆国产| 国产a免费观看| 精品国产一区二区三区免费| 国产伦精品一区三区视频|