版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、.:.;網(wǎng)站性能直接影響訪問速度,從而影響訪問量。實現(xiàn)高性能Web運用的重要性是不言而喻的。性能瓶頸主要表達在高延時、擁塞和效力器負載,專業(yè)的處理方法往往本錢較高。做好緩存的設計那么可以在控制本錢的情況下充分的提高性能。過去幾年中,Web運用程序曾經(jīng)從簡單的HTML頁面堆積演化成運用各種各樣的技術構(gòu)建高可擴展性和交互式的富運用程序。設計和開發(fā)這類運用程序變得越來越復雜,此外,決策者正越來越多地尋求構(gòu)建更豐富的互動功能到這些運用程序中,同時還要保證可維護性和高性能,但高性能意味著高本錢。為了構(gòu)建提供應最終用戶體驗的是一個結(jié)實的運用程序,開發(fā)人員需求處理潛在的性能瓶頸。本文偏重于緩存它是交付高性能
2、Web運用程序急需的也簡要引見一下緊縮功能。有一些公司在消費和銷售專門的緊縮和性能產(chǎn)品。本文旨在簡單引見在尋求專業(yè)產(chǎn)品處理性能問題之前開發(fā)人員可以在客戶端和效力器端對Web運用程序做的一些性能改良。性能瓶頸性能瓶頸主要表達在高延時、擁塞和效力器負載。緩存不能完全處理掉這三個問題,但經(jīng)過詳細的設計思索,緩存是可以提高性能的。在效力器端和客戶端都緩存內(nèi)容,據(jù)調(diào)查,平均而言,下載HTML只需求總的用戶呼應時間的10-20%,剩下的80-90%全部用于下載頁面中的其它組成內(nèi)容,這些組成內(nèi)容通常包括圖像,如公司logo,緩存logo可以有效防止到效力器的多次往返。在前日51CTO上發(fā)布的 HYPERLI
3、NK developer.51cto/art/202106/132210.htm t _blank 加速,加速,再加速:Google的網(wǎng)站加速技巧大全中,Google提到的提升網(wǎng)站速度和性能的低本錢技巧中就包括緩存這一條。至于架構(gòu)設計方面,那么可參考51CTO的 HYPERLINK developer.51cto/developer/webarc/ 視頻專題:大型網(wǎng)站架構(gòu)專家談。簡單地講,緩存是暫時存儲。它將數(shù)據(jù)復制到不同的計算機或不同于原始數(shù)據(jù)源的位置,有了正確的配置,訪問緩存數(shù)據(jù)的速度比訪問原始數(shù)據(jù)的速度要快得多,運用緩存數(shù)據(jù)可以減小效力器負載和帶寬耗費,從最終用戶的角度來看就是性能提高了
4、。圖1顯示了Internet如何任務的快速總攬,以及緩存在哪里發(fā)生作用。圖 1 Internet上的緩存:這個圖顯示了常見的懇求和檢索緩存信息的時機緩存正如他在圖1中所看到的,在效力器和客戶端上緩存數(shù)據(jù)既是能夠的也是有效的,圖2顯示了這三個緩存位置的不同視圖。圖 2 緩存配置:此圖顯示了三個典型的緩存位置1、客戶端閱讀器緩存:閱讀器緩存Web對象后,可以對反復的懇求直接呼應,不用再從Internet懇求數(shù)據(jù)了。2、效力器端轉(zhuǎn)發(fā)代理緩存:雖然能夠有些變化,但這些緩存位置通常是在最終用戶防火墻里面,可以對懇求直接呼應,不需求從原始來源懇求數(shù)據(jù)。3、效力器端反向代理緩存:也被稱為網(wǎng)關或代理緩存,這些
5、緩存效力器的操作代表了客戶的來源效力器,術語“內(nèi)容分發(fā)網(wǎng)絡CDN就是這些反向代理緩存的集合。他可以緩存任何能夠不止一次被懇求的對象,但總有一個危險就是緩存的對象很能夠變得陳舊,也就是說,沒有準確地反響原始數(shù)據(jù)。不過可以運用兩個參數(shù)來控制一切可緩存的對象:freshness和validation。freshness和validation都可以運用HTTP懇求和相應組合來進展確定。Freshness確定某個對象能否可以從緩存中獲得,運用expires和cache-control:max-age頭進展控制。Validation確定某個對象能否曾經(jīng)陳舊,運用last-modified和if-modif
6、ied-since頭進展控制。設計高度緩存的Web運用程序企業(yè)級Web運用程序既有靜態(tài)部分又有動態(tài)部分,只需進展了正確的設計和架構(gòu),都可以實現(xiàn)靜態(tài)部分從緩存中獲取,動態(tài)部分從原始效力器獲取,但第一步是確定要緩存什么,圖3提供了一個指南,可以協(xié)助 他確定哪些對象是可緩存,哪些對象是動態(tài)的不可緩存的。圖 3 確定緩存才干:此圖提供了某個對象能否應該緩存的指南運用程序架構(gòu)在可緩存對象和不可緩存對象之間有一點差別,開發(fā)人員應該尋求最大限制的緩存命中率,同時要防止緩存動態(tài)對象。下面是一些最正確實際:1、運用緩存控制cache-control:max-age和有效期Expires頭2、運用最后修正時間la
7、st-modified頭3、檢查Web效力器能否支持If-Modified-Since4、調(diào)查為小型站點運用轉(zhuǎn)向代理的可行性,或為大型企業(yè)網(wǎng)站從CDN廠家獲得專業(yè)人員的協(xié)助 5、根據(jù)網(wǎng)站的可擴展性思索是運用數(shù)據(jù)中心還是托管6、本人動手編碼經(jīng)常需求大量的時間和精神,根據(jù)站點的規(guī)模,可以思索采用開源緩存方法,如運用Squid作為代理效力器7、為文件下載明確運用混合緩存機制8、確保那些無用戶/輸入依賴的動態(tài)事務可以獲得緩存,為不同對象創(chuàng)建緩存映像可以協(xié)助 將可緩存對象和不可緩存對象隔分開來9、小心完全忽略緩存頭的內(nèi)容管理系統(tǒng)CMS為緩存運用頭(Header)本節(jié)覆蓋了為緩存目的最有用的頭??刂凭彺嬖?/p>
8、HTTP 1.1規(guī)范中,效力器應該為緩存控制頭發(fā)送一個無緩存呼應,以指出內(nèi)容不應該被緩存,客戶端和效力器端都應該遵守這個頭信息,以防止頭中曾經(jīng)聲明了的動態(tài)內(nèi)容,大多數(shù)開發(fā)言語都支持運用這個頭信息控制呼應頭值。另一方面,他可以為cache-control頭前往一個public效力器端應對來允許緩存即使沒有cache-control頭也可以指出對象是可以緩存的,cache-control頭的值為private是一個特殊情況,表示閱讀器能夠會在本地緩存對象,但代理效力器不會緩存它。圖4中的懇求呼應任務流顯示了Google如何經(jīng)過cache-control頭通知代理效力器不要緩存的。圖 4 停頓代理效
9、力器緩存:懇求-應對流顯示效力器前往private阻止代理效力器緩存最后,效力器運用expires應對時包括了一個表示有效期的日期/時間戳,直到有效期滿之前閱讀器都可以緩存中的對象。如圖5所示。圖 5 過期內(nèi)容:Google的Gmail效力器前往一個expires頭,包括緩存頁面的過期日期和時間這一點他可以驗證,Gmail允許閱讀器緩存Gmail主頁,直到expires頭中明確指定的時間到了為止。運用Last-Modified 頭閱讀器運用這個頭信息來確定緩存對象生存期的有效性,閱讀器懇求這個對象時,效力器運用一個包含該對象最后修正時間的時間戳的Last-Modified 頭進展呼應,當用戶下
10、次懇求一樣的對象時,假設當前的時間戳超出了對象的運用期限,或者用戶是經(jīng)過刷新方式懇求該頁面的,閱讀器會向效力器發(fā)送一個if_modified_since懇求確定對象能否發(fā)生了變化,假設對象確實發(fā)生了變化,閱讀器就發(fā)送一個完好的GET懇求以獲取新的對象并將其再次緩存起來,否那么,閱讀器就從它的緩存中提取對象,并更新對象的last-modified值。圖6顯示了一個任務實例。圖 6 最后修正時間:last-modified時間戳讓閱讀器確定是運用本地緩存內(nèi)容還是重新懇求內(nèi)容舉一個例子,假設閱讀器在懇求 HYPERLINK yahoo/ yahoo時,效力器運用last-modified時間戳進展呼
11、應,和運用if-modified-since頭進展呼應參考圖7時對比一下,看行為有何不同。圖 7 檢查修正:經(jīng)過發(fā)送if-modified-since頭,效力器將會運用一個表示自時間戳指定時間以來能否發(fā)生了變化的值進展呼應在圖7中,閱讀器運用if-modified-since頭發(fā)送一個懇求,效力器運用304代碼進展呼應,表示閱讀器可以運用緩存,不用發(fā)起一個完好的GET懇求。為了全面了解這些頭信息的效果,最好的方法是他本人動手實驗一翻,運用各種不同的頭信息組合,并察看它們的行為,分析頭信息的一個好工具是Wfetch。本人動手的方法正如前面給出的建議,本人動手DIY的方法并不總是捷徑,專門提供CD
12、N加速的產(chǎn)品和處理方案可以滿足不同類型的需求。但假設他要開發(fā)的是一個內(nèi)部運用的產(chǎn)品,可以提供協(xié)助 的能夠只需Squid了,Squid被用作許多產(chǎn)品的一個組成部分,許多ISP也在運用它。例如,在Java運用程序中,Squid可以被用作Tomcat效力器的代理,Squid提供的不僅僅是HTTP緩存,但關于它的完好引見曾經(jīng)超出了本文的范圍,請讀者自行搜索相關文章,可以在 HYPERLINK /wiki/Cache_strategy Wikimedia看到另一個運用Squid的例子。HTTP緊縮緩存僅僅是提高Web運用程序性能的方法之一,緊縮是另一個關鍵方法,HTTP緊縮在內(nèi)容發(fā)送到客戶端之前將其緊縮,在客戶端和效力器端都有緊縮功能,當效力器交付的是緊縮內(nèi)容時,由閱讀器進展解壓,這樣可以節(jié)約珍貴的帶寬,減少本錢和提高呼應時間。閱讀器運用值為gzip的accept-encodingtypically頭聲稱它們支持緊縮,效力器運用content-encoding頭指定應對數(shù)據(jù)的編碼,例如,假設運用的是gzip格式進展緊縮,效力器應該運用值為gzip的content-encodin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度餐飲泔水回收與環(huán)保設施投資合同3篇
- 二零二五年礦山土地及資源使用權(quán)轉(zhuǎn)讓合同3篇
- 二零二五版白糖進口許可證申請代理服務合同下載2篇
- 二零二五年度駕駛員押運員安全責任及培訓合同3篇
- 二零二五版企事業(yè)單位節(jié)能環(huán)保辦公電腦采購合同2篇
- 二零二五版電子商務平臺借款及庫存商品質(zhì)押合同3篇
- 二零二五年紡織原料市場調(diào)研與分析合同2篇
- 小區(qū)下水管網(wǎng)清理疏通承包合同(2篇)
- 二零二五版房產(chǎn)買賣合同含抵押權(quán)轉(zhuǎn)移及貸款利率協(xié)商協(xié)議0183篇
- 2025年度農(nóng)業(yè)科技推廣財產(chǎn)贈與合同3篇
- 高中英語名詞性從句講解
- 計算機二級wps題庫及答案
- 整套課件:工業(yè)催化
- 爆破安全管理知識培訓
- 旅游地理學教案
- 煤矸石綜合利用途徑課件
- 企業(yè)信息公示聯(lián)絡員備案申請表
- 衛(wèi)生部關于發(fā)布《綜合醫(yī)院組織編制原則試行草案》的通知((78)衛(wèi)醫(yī)字第1689號)
- 挑戰(zhàn)杯生命科學獲獎作品范例
- 醫(yī)院崗位設置與人員編制標準
- 部編版八上語文古代詩歌鑒賞對比閱讀(含答案)
評論
0/150
提交評論