資源描述:
《web網(wǎng)站架構(gòu)分析html靜態(tài)化》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、HTML靜態(tài)化1介紹其實(shí)大家都知道,效率最高、消耗最小的就是純靜態(tài)化的html頁面,所以我們盡可能使我們的網(wǎng)站上的頁面采用靜態(tài)頁面來實(shí)現(xiàn),這個(gè)最簡單的方法其實(shí)也是最有效的方法。但是對于大量內(nèi)容并且頻繁更新的網(wǎng)站,我們無法全部手動(dòng)去挨個(gè)實(shí)現(xiàn),于是出現(xiàn)了我們常見的信息發(fā)布系統(tǒng)CMS,像我們常訪問的各個(gè)門戶站點(diǎn)的新聞?lì)l道,甚至他們的其他頻道,都是通過信息發(fā)布系統(tǒng)來管理和實(shí)現(xiàn)的,信息發(fā)布系統(tǒng)可以實(shí)現(xiàn)最簡單的信息錄入自動(dòng)生成靜態(tài)頁面,還能具備頻道管理、權(quán)限管理、自動(dòng)抓取等功能,對于一個(gè)大型網(wǎng)站來說,擁有一套高效、可管理的CMS是必不可少的。除了門戶和信息發(fā)布類型的網(wǎng)站,對于交互性要求很高的
2、社區(qū)類型網(wǎng)站來說,盡可能的靜態(tài)化也是提高性能的必要手段,將社區(qū)內(nèi)的帖子、文章進(jìn)行實(shí)時(shí)的靜態(tài)化,有更新的時(shí)候再重新靜態(tài)化也是大量使用的策略,像Mop的大雜燴就是使用了這樣的策略,網(wǎng)易社區(qū)等也是如此。同時(shí),html靜態(tài)化也是某些緩存策略使用的手段,對于系統(tǒng)中頻繁使用數(shù)據(jù)庫查詢但是內(nèi)容更新很小的應(yīng)用,可以考慮使用html靜態(tài)化來實(shí)現(xiàn),比如論壇中論壇的公用設(shè)置信息,這些信息目前的主流論壇都可以進(jìn)行后臺(tái)管理并且存儲(chǔ)再數(shù)據(jù)庫中,這些信息其實(shí)大量被前臺(tái)程序調(diào)用,但是更新頻率很小,可以考慮將這部分內(nèi)容進(jìn)行后臺(tái)更新的時(shí)候進(jìn)行靜態(tài)化,這樣避免了大量的數(shù)據(jù)庫訪問請求。提升網(wǎng)站性能的方式有很多,例如有效
3、的使用緩存,生成靜態(tài)頁面等等,本文主要介紹Java高并發(fā):HTML靜態(tài)頁化。1.1什么是靜態(tài)頁面靜態(tài)頁面是獨(dú)立的html、htm后綴文件,不需要經(jīng)過服務(wù)器的編譯,可以直接加載到客戶瀏覽器上顯示出來。1.2為什么要將網(wǎng)站修改為靜態(tài)頁面1)加快頁面打開瀏覽速度,不用調(diào)用數(shù)據(jù)庫,訪問速度比一般動(dòng)態(tài)網(wǎng)站快5-10倍。2)有利于搜索引擎優(yōu)化SEO,百度谷歌等搜索引擎都會(huì)優(yōu)先收錄靜態(tài)頁面。不僅被收錄的快還收錄的全。并且在排名中靜態(tài)頁面的排名權(quán)重要高于動(dòng)態(tài)路徑的頁面。3)網(wǎng)站更安全,靜態(tài)頁面從理論上講是完全沒有漏洞的。數(shù)據(jù)庫出錯(cuò)時(shí),不影響網(wǎng)站正常訪問。4)缺點(diǎn):無法即時(shí)更新,每次更新內(nèi)容都需要
4、生成靜態(tài)頁面。1.3靜態(tài)化需要考慮三個(gè)方面的事情1,對SEO,能夠讓搜索引擎更方便的進(jìn)行采集和分類,提升其速度和準(zhǔn)確性。2,對用戶,不能影響版面的展示,不能為了速度影響了美觀和可用性。3,對維護(hù),一些內(nèi)容可以方便的更換,比如菜單調(diào)整,連接調(diào)整,廣告位的調(diào)整等。1Java實(shí)現(xiàn)html靜態(tài)化方案java頁面靜態(tài)化解釋:簡單的說,我們?nèi)绻L問一個(gè)鏈接,服務(wù)器對應(yīng)的模塊會(huì)處理這個(gè)請求,轉(zhuǎn)到對應(yīng)的jsp界面,最后生成我們想要看到的數(shù)據(jù)。這其中的缺點(diǎn)是顯而易見的:因?yàn)槊看握埱蠓?wù)器都會(huì)進(jìn)行處理,如果有太多的高并發(fā)請求,那么就會(huì)加重應(yīng)用服務(wù)器的壓力,弄不好就把服務(wù)器搞down掉了。那么如何去避
5、免呢?如果我們把對test.do請求后的結(jié)果保存成一個(gè)html文件,然后每次用戶都去訪問,這樣應(yīng)用服務(wù)器的壓力不就減少了?那么靜態(tài)頁面從哪里來呢?總不能讓我們每個(gè)頁面都手動(dòng)處理吧?這里就牽涉到我們要講解的內(nèi)容了,靜態(tài)頁面生成方案…我們需要的是自動(dòng)的生成靜態(tài)頁面,當(dāng)用戶訪問,會(huì)自動(dòng)生成test.html,然后顯示給用戶。1.1頁面靜態(tài)化方案應(yīng)該掌握的知識(shí)點(diǎn)1、基于-URLRewrite偽靜態(tài)URL重寫實(shí)際就是以靜態(tài)地址(如:http://127.0.0.1:8080/pro/index.html)訪問地態(tài)網(wǎng)頁的方法(如:http://127.0.0.1:8080/pro/index
6、.jsp)。偽靜態(tài)URL重寫是通過微軟公司封裝好了的一個(gè)URL重寫組件(UrlReswriter.jar)來實(shí)現(xiàn)的,導(dǎo)入JAR包,在WEB服務(wù)中加載偽靜態(tài)地址攔截器,客戶端以靜態(tài)地址向服務(wù)器發(fā)起請求,服務(wù)器端的攔截器攔截客戶端請求,查找XML配置文件,把靜態(tài)的URL地址轉(zhuǎn)換成動(dòng)態(tài)地址,發(fā)起請求。2、基于Servletweb.xmlStruts或servlet接收請求,如test.action,對請求的url進(jìn)行處理,判斷是否生成靜態(tài)html頁面。其中,對于URLRewriter的部分,可以使用收費(fèi)或者開源的工具來實(shí)現(xiàn),如果url不是特別的復(fù)雜,可以考慮在servlet中實(shí)現(xiàn),那么
7、就是下面這個(gè)樣子:1.1JSP生成靜態(tài)HTML頁面最普遍的三種方法Jsp靜態(tài)化解釋:對于現(xiàn)在的WebApplication來說,動(dòng)態(tài)頁面是占有絕對高的地位的,正因?yàn)橛辛藙?dòng)態(tài)化,才有了現(xiàn)在Web的豐富多彩,但是如同所有別的事實(shí)一樣,好處往往都是有代價(jià)的。為了產(chǎn)生出動(dòng)態(tài)的效果,每一次對頁面的請求都會(huì)要求服務(wù)器對頁面進(jìn)行編譯或者執(zhí)行,這些操作都很消耗系統(tǒng)資源。如果這期間還有和數(shù)據(jù)庫的通訊,那么代價(jià)將會(huì)更大。如果一個(gè)頁面在一定的時(shí)間內(nèi),其內(nèi)容沒有發(fā)生改變,那么就不必為每一次對它的訪問進(jìn)行