成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

web緩存

ThinkSNS / 2603人閱讀

摘要:一緩存對(duì)性能優(yōu)化請(qǐng)求更快通過(guò)將內(nèi)容緩存在本地瀏覽器或距離最近的緩存服務(wù)器如,在不影響網(wǎng)站交互的前提下可以大大加快網(wǎng)站加載速度。強(qiáng)制緩存不發(fā)請(qǐng)求到服務(wù)器,協(xié)商緩存會(huì)發(fā)請(qǐng)求到服務(wù)器。四協(xié)商緩存標(biāo)示這個(gè)響應(yīng)資源的最后修改時(shí)間。

一:緩存對(duì)性能優(yōu)化
請(qǐng)求更快:通過(guò)將內(nèi)容緩存在本地瀏覽器或距離最近的緩存服務(wù)器(如CDN),在不影響網(wǎng)站交互的前提下可以大大加快網(wǎng)站加載速度。
降低服務(wù)器壓力:在大量用戶(hù)并發(fā)請(qǐng)求的情況下,服務(wù)器的性能受到限制,此時(shí)將一些靜態(tài)資源放置在網(wǎng)絡(luò)的多個(gè)節(jié)點(diǎn),可以起到均衡負(fù)載的作用,降低服務(wù)器的壓力。

緩存控制機(jī)制優(yōu)先級(jí):
Expires < Cache:max-age
Last-Modified < ETag

二:緩存方式
服務(wù)端緩存,例如CDN
客戶(hù)端緩存,即瀏覽器緩存,可通過(guò)cache,manifest等實(shí)現(xiàn).
瀏覽器緩存分兩類(lèi),強(qiáng)制緩存和協(xié)商緩存
強(qiáng)制緩存:瀏覽器在加載資源時(shí),根據(jù)http header判斷它是否命中強(qiáng)緩存,如果命中,瀏覽器直接從自己的緩存中讀取資源,不會(huì)發(fā)請(qǐng)求到服務(wù)器。比如某個(gè)css文件,如果瀏覽器在加載它所在的網(wǎng)頁(yè)時(shí),這個(gè)css文件的緩存配置命中了強(qiáng)緩存,瀏覽器就直接從緩存中加載這個(gè)css,連請(qǐng)求都不會(huì)發(fā)送到網(wǎng)頁(yè)所在服務(wù)器.
協(xié)商緩存:當(dāng)強(qiáng)緩存沒(méi)有命中的時(shí)候,瀏覽器一定會(huì)發(fā)送一個(gè)請(qǐng)求到服務(wù)器,通過(guò)服務(wù)器端依據(jù)資源的另外一些http header驗(yàn)證這個(gè)資源是否命中協(xié)商緩存,如果協(xié)商緩存命中,服務(wù)器會(huì)將這個(gè)請(qǐng)求返回(304),但是不會(huì)返回這個(gè)資源的數(shù)據(jù),而是告訴客戶(hù)端可以直接從緩存中加載這個(gè)資源,于是瀏覽器就又會(huì)從自己的緩存中去加載這個(gè)資源;若未命中請(qǐng)求,則將資源返回客戶(hù)端,并更新本地緩存數(shù)據(jù)(200)。
強(qiáng)制緩存不發(fā)請(qǐng)求到服務(wù)器,協(xié)商緩存會(huì)發(fā)請(qǐng)求到服務(wù)器。
強(qiáng)制緩存:Expires、Cache-control
協(xié)商緩存:Last-Modified/If-Modified-Since, Etag/If-None-Match

三:強(qiáng)制緩存控制

Expires,HTTP/1.0提出的一個(gè)表示資源過(guò)期時(shí)間的header,它描述的是一個(gè)絕對(duì)時(shí)間,由服務(wù)器返回,用GMT格式的字符串表示,如:Expires:Thu, 31 Dec 2016 23:55:55 GMT,Expires是較老的強(qiáng)緩存管理header,由于它是服務(wù)器返回的一個(gè)絕對(duì)時(shí)間,這樣存在一個(gè)問(wèn)題,如果客戶(hù)端的時(shí)間與服務(wù)器的時(shí)間相差很大(比如時(shí)鐘不同步,或者跨時(shí)區(qū)),那么誤差就很大,所以在HTTP/1.1版開(kāi)始,使用Cache-Control: max-age=秒替代。
Cache-Control:針對(duì)上述的“Expires時(shí)間是相對(duì)服務(wù)器而言,無(wú)法保證和客戶(hù)端時(shí)間統(tǒng)一”的問(wèn)題,http1.1新增了 Cache-Control 來(lái)定義緩存過(guò)期時(shí)間,若報(bào)文中同時(shí)出現(xiàn)了 Pragma、Expires 和 Cache-Control,會(huì)以 Cache-Control 為準(zhǔn)。Cache-Control也是一個(gè)通用首部字段,這意味著它能分別在請(qǐng)求報(bào)文和響應(yīng)報(bào)文中使用。
讀取緩存數(shù)據(jù)條件:上次緩存時(shí)間(客戶(hù)端的)+max-age < 當(dāng)前時(shí)間(客戶(hù)端的).Cache-Control取值的含義:
各個(gè)消息中的指令含義如下:

no-cache指示請(qǐng)求或響應(yīng)消息不能緩存,該選項(xiàng)并不是說(shuō)可以設(shè)置”不緩存“,而是需要和服務(wù)器確認(rèn)。
max-age指示客戶(hù)機(jī)可以接收生存期不大于指定時(shí)間(以秒為單位)的響應(yīng)。上次緩存時(shí)間(客戶(hù)端的)+max-age(64200s)<客戶(hù)端當(dāng)前時(shí)間
min-fresh指示客戶(hù)機(jī)可以接收響應(yīng)時(shí)間小于當(dāng)前時(shí)間加上指定時(shí)間的響應(yīng)。
四:協(xié)商緩存
Last-Modified/If-Modified-Since:
Last-Modified:標(biāo)示這個(gè)響應(yīng)資源的最后修改時(shí)間。web服務(wù)器在響應(yīng)請(qǐng)求時(shí),告訴瀏覽器資源的最后修改時(shí)間。If-Modified-Since:當(dāng)資源過(guò)期時(shí)(強(qiáng)緩存失效),發(fā)現(xiàn)資源具有Last-Modified聲明,則再次向web服務(wù)器請(qǐng)求時(shí)帶上If-Modified-Since標(biāo)簽,把上次服務(wù)器返回的Last-Modified時(shí)間返回到服務(wù)器端。web服務(wù)器收到請(qǐng)求后根據(jù)If-Modified-Since 時(shí)間與被請(qǐng)求資源的最后修改時(shí)間進(jìn)行比對(duì)。若最后修改時(shí)間較新,說(shuō)明資源又被改動(dòng)過(guò),則響應(yīng)整片資源內(nèi)容(寫(xiě)在響應(yīng)消息包體內(nèi)),HTTP 200;若最后修改時(shí)間較舊,說(shuō)明資源無(wú)新修改,則響應(yīng)HTTP 304 (無(wú)需包體,節(jié)省瀏覽),告知瀏覽器繼續(xù)使用所保存的cache。
注: Last-Modified標(biāo)注的最后修改只能精確到秒級(jí),如果某些文件在1秒鐘以?xún)?nèi),被修改多次的話,它將不能準(zhǔn)確標(biāo)注文件的修改時(shí)間(無(wú)法及時(shí)更新文件)
如果某些文件會(huì)被定期生成,當(dāng)有時(shí)內(nèi)容并沒(méi)有任何變化,但Last-Modified卻改變了,導(dǎo)致文件沒(méi)法使用緩存,有可能存在服務(wù)器沒(méi)有準(zhǔn)確獲取文件修改時(shí)間,或者與代理服務(wù)器時(shí)間不一致等情形(無(wú)法使用緩存)。

Etag/If-None-Match:
Etag:web服務(wù)器響應(yīng)請(qǐng)求時(shí),告訴瀏覽器當(dāng)前資源在服務(wù)器的唯一標(biāo)識(shí)(生成規(guī)則由服務(wù)器決定)。Apache中,ETag的值,默認(rèn)是對(duì)文件的索引節(jié)(INode),大?。⊿ize)和最后修改時(shí)間(MTime)進(jìn)行Hash后得到的。
If-None-Match:當(dāng)資源過(guò)期時(shí)(使用Cache-Control標(biāo)識(shí)的max-age),發(fā)現(xiàn)資源具有Etage聲明,則再次向web服務(wù)器請(qǐng)求時(shí)帶上頭If-None-Match (Etag的值)。web服務(wù)器收到請(qǐng)求后發(fā)現(xiàn)有頭If-None-Match 則與被請(qǐng)求資源的相應(yīng)校驗(yàn)串進(jìn)行比對(duì),決定返回200或304。
注:Etag是服務(wù)器自動(dòng)生成或者由開(kāi)發(fā)者生成的對(duì)應(yīng)資源在服務(wù)器端的唯一標(biāo)識(shí)符,能夠更加準(zhǔn)確的控制緩存。

五:CDN
CDN的全稱(chēng)是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。通過(guò)在網(wǎng)絡(luò)各處放置節(jié)點(diǎn)服務(wù)器所構(gòu)成的在現(xiàn)有的互聯(lián)網(wǎng)基礎(chǔ)之上的一層智能虛擬網(wǎng)絡(luò),CDN系統(tǒng)能夠?qū)崟r(shí)地根據(jù)網(wǎng)絡(luò)流量和各節(jié)點(diǎn)的連接、負(fù)載狀況以及到用戶(hù)的距離和響應(yīng)時(shí)間等綜合信息將用戶(hù)的請(qǐng)求重新導(dǎo)向離用戶(hù)最近的服務(wù)節(jié)點(diǎn)上。其目的是使用戶(hù)可就近取得所需內(nèi)容,解決 Internet網(wǎng)絡(luò)擁擠的狀況,提高用戶(hù)訪問(wèn)網(wǎng)站的響應(yīng)速度。

CDN是一個(gè)經(jīng)策略性部署的整體系統(tǒng),包括分布式存儲(chǔ)、負(fù)載均衡、網(wǎng)絡(luò)請(qǐng)求的重定向和內(nèi)容管理4個(gè)要件,而內(nèi)容管理和全局的網(wǎng)絡(luò)流量管理(Traffic Management)是CDN的核心所在。通過(guò)用戶(hù)就近性和服務(wù)器負(fù)載的判斷,CDN確保內(nèi)容以一種極為高效的方式為用戶(hù)的請(qǐng)求提供服務(wù)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43509.html

相關(guān)文章

  • Web緩存優(yōu)化的進(jìn)階認(rèn)知

    摘要:可緩存優(yōu)化并不是所有資源都是可以被緩存的。影響緩存的因素主要有請(qǐng)求方法,請(qǐng)求參數(shù)設(shè)置以及狀態(tài)碼。可緩存的有消極緩存的狀態(tài)碼不可緩存的狀態(tài)碼緩存中的生命周期是指對(duì)象相鄰兩次修改的時(shí)間。此時(shí)該對(duì)象是不可緩存對(duì)象添加字段可以增長(zhǎng)對(duì)象生命周期。 一般情況下,網(wǎng)站在第二次加載時(shí),加載時(shí)間會(huì)大大被提升,這是因?yàn)榫W(wǎng)頁(yè)中的一些資源被客戶(hù)端緩存下來(lái)了,網(wǎng)頁(yè)在二次加載的時(shí)候就不需要重新從遠(yuǎn)處服務(wù)器請(qǐng)求資源...

    nemo 評(píng)論0 收藏0
  • Web緩存優(yōu)化的進(jìn)階認(rèn)知

    摘要:可緩存優(yōu)化并不是所有資源都是可以被緩存的。影響緩存的因素主要有請(qǐng)求方法,請(qǐng)求參數(shù)設(shè)置以及狀態(tài)碼??删彺娴挠邢麡O緩存的狀態(tài)碼不可緩存的狀態(tài)碼緩存中的生命周期是指對(duì)象相鄰兩次修改的時(shí)間。此時(shí)該對(duì)象是不可緩存對(duì)象添加字段可以增長(zhǎng)對(duì)象生命周期。 一般情況下,網(wǎng)站在第二次加載時(shí),加載時(shí)間會(huì)大大被提升,這是因?yàn)榫W(wǎng)頁(yè)中的一些資源被客戶(hù)端緩存下來(lái)了,網(wǎng)頁(yè)在二次加載的時(shí)候就不需要重新從遠(yuǎn)處服務(wù)器請(qǐng)求資源...

    miguel.jiang 評(píng)論0 收藏0
  • Web緩存相關(guān)知識(shí)整理

    摘要:緩存緩存,也叫網(wǎng)關(guān)緩存反向代理緩存。瀏覽器先向網(wǎng)關(guān)發(fā)起請(qǐng)求,網(wǎng)關(guān)服務(wù)器后面對(duì)應(yīng)著一臺(tái)或多臺(tái)負(fù)載均衡源服務(wù)器,會(huì)根據(jù)它們的負(fù)載請(qǐng)求,動(dòng)態(tài)將請(qǐng)求轉(zhuǎn)發(fā)到合適的源服務(wù)器上。雖然這種架構(gòu)負(fù)載均衡源服務(wù)器之間的緩存沒(méi)法共享,但卻擁有更好的處擴(kuò)展性。 一、前言? 工作上遇到一個(gè)這樣的需求,一個(gè)H5頁(yè)面在APP端,如果勾選已讀狀態(tài),則下次打開(kāi)該鏈接,會(huì)跳過(guò)此頁(yè)面。用到了HTML5 的本地存儲(chǔ) API ...

    rickchen 評(píng)論0 收藏0
  • web緩存機(jī)制

    摘要:瀏覽器先向網(wǎng)關(guān)發(fā)起請(qǐng)求,網(wǎng)關(guān)服務(wù)器后面對(duì)應(yīng)著一臺(tái)或多臺(tái)負(fù)載均衡源服務(wù)器,會(huì)根據(jù)它們的負(fù)載請(qǐng)求,動(dòng)態(tài)將請(qǐng)求轉(zhuǎn)發(fā)到合適的源服務(wù)器上。雖然這種架構(gòu)負(fù)載均衡源服務(wù)器之間的緩存沒(méi)法共享,但卻擁有更好的處擴(kuò)展性。參考資料緩存機(jī)制系列 什么是web緩存 Web緩存是指一個(gè)Web資源(如html頁(yè)面,圖片,js,數(shù)據(jù)等)存在于Web服務(wù)器和客戶(hù)端(瀏覽器)之間的副本。緩存會(huì)根據(jù)進(jìn)來(lái)的請(qǐng)求保存輸出內(nèi)容的...

    soasme 評(píng)論0 收藏0
  • web緩存機(jī)制

    摘要:瀏覽器先向網(wǎng)關(guān)發(fā)起請(qǐng)求,網(wǎng)關(guān)服務(wù)器后面對(duì)應(yīng)著一臺(tái)或多臺(tái)負(fù)載均衡源服務(wù)器,會(huì)根據(jù)它們的負(fù)載請(qǐng)求,動(dòng)態(tài)將請(qǐng)求轉(zhuǎn)發(fā)到合適的源服務(wù)器上。雖然這種架構(gòu)負(fù)載均衡源服務(wù)器之間的緩存沒(méi)法共享,但卻擁有更好的處擴(kuò)展性。參考資料緩存機(jī)制系列 什么是web緩存 Web緩存是指一個(gè)Web資源(如html頁(yè)面,圖片,js,數(shù)據(jù)等)存在于Web服務(wù)器和客戶(hù)端(瀏覽器)之間的副本。緩存會(huì)根據(jù)進(jìn)來(lái)的請(qǐng)求保存輸出內(nèi)容的...

    TerryCai 評(píng)論0 收藏0
  • H5 緩存機(jī)制淺析 - 移動(dòng)端 Web 加載性能優(yōu)化

    摘要:根據(jù)標(biāo)準(zhǔn),到目前為止,一共有種緩存機(jī)制,有些是之前已有,有些是才新加入的。首次請(qǐng)求緩存有效期內(nèi)請(qǐng)求緩存過(guò)期后請(qǐng)求一般瀏覽器會(huì)將緩存記錄及緩存文件存在本地文件夾中。 騰訊 Bugly 特約作者:賀輝超 1. H5 緩存機(jī)制介紹 H5,即 HTML5,是新一代的 HTML 標(biāo)準(zhǔn),加入很多新的特性。離線存儲(chǔ)(也可稱(chēng)為緩存機(jī)制)是其中一個(gè)非常重要的特性。H5 引入的離線存儲(chǔ),這意味著 web ...

    alin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<