最近在思考網(wǎng)站要不要進行靜態(tài)化的問題,在網(wǎng)上收集和整理了有關(guān)靜態(tài)化利與弊的資料,于是寫下此博文分享到網(wǎng)絡(luò)上。由于本人是一名asp.net開發(fā)人員,所以本文的觀點可能無法涉及到全部方面,但是比較注重于使用ASP.NET所開發(fā)的網(wǎng)站,畢竟網(wǎng)站開發(fā)技術(shù)種類繁多,并且各有特點。下面會從多個方面對網(wǎng)站靜態(tài)的利與弊進行分析。
PS:博文中不包含相關(guān)靜態(tài)化實現(xiàn)方法的內(nèi)容,只對ASP.NET網(wǎng)站靜態(tài)化的優(yōu)點與缺點進行思考和分析。
從搜索引擎優(yōu)化的角度考慮
根據(jù)網(wǎng)上的資料來看,網(wǎng)站靜態(tài)化考慮最多的就是SEO了,事實上靜態(tài)頁面確實十分有利于搜索引擎蜘蛛的抓取,另外早期的ASP.NET Web Form網(wǎng)站對于SEO則不是太友好。
PS:SEO(搜索引擎優(yōu)化)的重要性,這里就不再多加敘述,這可是提高網(wǎng)站流量的重要手段!
那么為什么靜態(tài)化會有利于SEO呢?這里主要從URL進行分析,對于搜索引擎蜘蛛來說,動態(tài)的URL往往是十分不友好的,雖然現(xiàn)在搜素引擎的技術(shù)已經(jīng)可以抓取到動態(tài)頁面的內(nèi)容,但是相比靜態(tài)URL簡短、美觀、穩(wěn)定的性質(zhì),動態(tài)URL地址中過多且復(fù)雜的參數(shù)會使蜘蛛難以理解和區(qū)分。
動態(tài)頁面本身是依靠傳入的參數(shù)來查詢顯示數(shù)據(jù)庫的內(nèi)容,對于引擎蜘蛛來說,相同名稱的.aspx頁面都是同一個頁面,不同的只是參數(shù),搜索引擎只能根據(jù)這些復(fù)雜的參數(shù)來判斷URL是否為不同的頁面,所以動態(tài)URL對于搜素引擎來說是十分不友好的。
而靜態(tài)頁面則不同,由于靜態(tài)頁面的URL對應(yīng)的是服務(wù)器上頁面所在的磁盤路徑,搜索引擎很容易區(qū)分和理解頁面的地址,而且靜態(tài)URL一般也不會帶有復(fù)雜的參數(shù)。
對于ASP.NET Web Form網(wǎng)站來說,如果只是想優(yōu)化URL,那么倒是可以考慮使用偽靜態(tài)的方法。幸運的是,對于使用ASP.NET MVC開發(fā)的網(wǎng)站來說,就沒有這個煩惱了,ASP.NET MVC的路由機制就為我們提供了對seo十分友好的URL,甚至可以考慮不對網(wǎng)站進行靜態(tài)化操作。
另外靜態(tài)頁面訪問的速度比動態(tài)頁面快,從SEO的角度來看是十分有利的。畢竟對于搜索引擎蜘蛛,如果一個頁面響應(yīng)速度慢并且經(jīng)常打不開,那么就等于釋放出兩個信號:1、網(wǎng)站用戶體驗不好。2、網(wǎng)站內(nèi)容很難抓取。這樣會對網(wǎng)站排名造成極大的負面影響。
從網(wǎng)站服務(wù)器壓力和訪問速度考慮
這里先從訪問速度進行對比,靜態(tài)頁面的訪問速度確實比動態(tài)頁面快,畢竟靜態(tài)頁面只需從硬盤讀取頁面文件就可以將內(nèi)容呈現(xiàn)給用戶,而動態(tài)頁面比如asp.net網(wǎng)站一般還需要經(jīng)過程序處理相關(guān)的業(yè)務(wù)邏輯,以及從數(shù)據(jù)庫中讀取數(shù)據(jù)才能渲染頁面并呈現(xiàn)出來,一定程度上會拖慢頁面的訪問速度。在遇到高強度訪問壓力的時候,靜態(tài)頁面快速和穩(wěn)定的優(yōu)勢將會完全體現(xiàn)出來。
這里再從服務(wù)器資源角度來看,對于站長來說服務(wù)器配置越好所需的費用越高,那么靜態(tài)化的網(wǎng)站在服務(wù)器資源方面又是如何呢?這么說吧,靜態(tài)頁面消耗硬盤的資源較多,一般在磁盤空間容量方面,主要是大量的頁面文件和分級文件夾。另外靜態(tài)頁面在生成時候,對于硬盤的IO讀寫操作和CPU消耗也是十分巨大的,特別是遇到有大量的頁面要進行靜態(tài)化的時候,CPU運算和IO操作將會更加顯著的降低服務(wù)器性能。
而ASP.NET這類的動態(tài)網(wǎng)站一般比較消耗服務(wù)器的內(nèi)存資源,這里需要開發(fā)人員注意對網(wǎng)站進行優(yōu)化,盡量避免將大量數(shù)據(jù)保存至?xí)捴,以及在使用緩存方面也需要額外注意。另外有些動態(tài)網(wǎng)站對CPU使用率也是十分高的,比如一些提供圖片處理的服務(wù)網(wǎng)站。此外需要對數(shù)據(jù)庫進行大量增刪改操作的動態(tài)網(wǎng)站,對服務(wù)器壓力非常的大,例如最常見的論壇類網(wǎng)站(WEB2.0),甚至有的服務(wù)器商在出租服務(wù)器時,會有額外的提示服務(wù)器可承受的壓力數(shù)據(jù)。
總體來說,靜態(tài)化后的網(wǎng)站確實有利于降低服務(wù)器壓力。在生成靜態(tài)頁面時所造成的服務(wù)器性能影響,是可以通過一定的手段進行優(yōu)化。另外大家也可以了解下CDN技術(shù),即內(nèi)容分發(fā)網(wǎng)絡(luò),對于靜態(tài)頁面來說,一旦使用了這個技術(shù),外加上瀏覽器緩存,那么用戶訪問網(wǎng)站的響應(yīng)速度就像火箭一樣快!訪問速度快了,從另一個角度來看又是有利于搜索引擎對網(wǎng)站內(nèi)容的抓取。
從技術(shù)角度分析
作為一個ASP.NET開發(fā)人員,曾經(jīng)在對網(wǎng)站進行靜態(tài)化的時候遇到過許多問題。首先從網(wǎng)站程序的復(fù)雜度進行分析,一個具有靜態(tài)化功能的網(wǎng)站必是非常復(fù)雜的,因為靜態(tài)化一個網(wǎng)站要考慮的技術(shù)性問題十分多(這里不包括偽靜態(tài))。
進行靜態(tài)操作的時候,不僅要考慮到單個頁面的操作,還需要注意整體與單個之間的復(fù)雜關(guān)聯(lián),有種牽一發(fā)而動全身的壓迫。就拿最常見的上一頁和下一頁來說,如果當(dāng)前網(wǎng)站的某一篇文章刪除了,那么這篇文章對應(yīng)的上下頁就必須要重新進行靜態(tài)化,否則鏈接的地址將會出現(xiàn)404。簡單的頁面尚且如此,更別說那些大型的網(wǎng)站了,每個頁面中超級復(fù)雜的關(guān)系就夠喝一壺了。
再從進行靜態(tài)操作的時機來看,一般開發(fā)人員要實現(xiàn)相應(yīng)的觸發(fā)開關(guān)功能,用于判斷是否要進行靜態(tài)化操作,以及要進行什么樣的靜態(tài)化操作。是局部還是整體?靜態(tài)頁面文件是否存在?靜態(tài)頁面的數(shù)據(jù)是否過期?這些問題都說明了生成的時機是很重要的,否則會造成用戶看到的數(shù)據(jù)不是最新的內(nèi)容。
此外靜態(tài)化操作對服務(wù)器性能的影響也是煎熬開發(fā)人員的難題之一,我們不可能頻繁的進行靜態(tài)化操作,對磁盤的IO操作以及大量的邏輯處理都會消耗大量CPU的資源,服務(wù)器性能隨之受到影響。在進行批量操作時,一定要考慮使用線程進行處理,千萬不能阻塞網(wǎng)站的整體進程。
老實話,對于網(wǎng)站開發(fā)者來說,靜態(tài)功能也許是一個頭疼的問題,開發(fā)難度加大了,同時維護難度和管理難度也通用加大,在網(wǎng)站備份的時候還得考慮是否要備份這些靜態(tài)文件!特別是大型的網(wǎng)站,靜態(tài)化往往需要進行復(fù)雜的架構(gòu)設(shè)計!
總結(jié)ASP.NET靜態(tài)化的利弊
是否是需要靜態(tài)化,還是得看整體的需求,俗話說只有最適合自己的才是最好的(有點廢話的趕腳 ^^)。
一般來說一些不經(jīng)常更新內(nèi)容的頁面就可以考慮進行靜態(tài)操作,比如新聞頁面,小說的章節(jié)頁面,畢竟這些內(nèi)容一旦發(fā)布了,就很少會進行改動。而且可以使用CDN技術(shù)進行加速。
優(yōu)點:
1、利于SEO,體現(xiàn)在友好的URL路徑和快速的訪問速度,asp.net mvc網(wǎng)站可以忽略URL的影響。
2、一個字:就是快!!!靜態(tài)頁面訪問速度快,用戶體驗好,結(jié)合CDN技術(shù)、緩存和相應(yīng)的架構(gòu),提速效果更加明顯!
3、相比動態(tài)頁面一定程度上減輕服務(wù)器壓力
缺點:
1、可能需要使用大量硬盤空間
2、增加網(wǎng)站開發(fā)復(fù)雜度,不利于程序維護和管理。
3、不太靈活,靜態(tài)化操作是需要觸發(fā)開關(guān)的,不可能頻繁的進行操作,可能導(dǎo)致數(shù)據(jù)更新慢,需要進行相應(yīng)的設(shè)計。
◆電話受理中心(用戶綜合窗口)
為了給廣大客戶提供更優(yōu)質(zhì)、快捷的網(wǎng)站維護服務(wù),在中國業(yè)界率先設(shè)立了全天候服務(wù)式的電話受理中心,并始終堅持“快速”“準(zhǔn)確”“親切”的服務(wù)理念。走過風(fēng)雨兼程的10年,我們嘗盡酸甜苦辣,但是為客戶服務(wù)的心,卻一刻也不曾停歇,為了您的歡笑,我們?nèi)詫⒗^續(xù)前行。
◆全國統(tǒng)一免費網(wǎng)站維護電話:400-670-5808(支持任何用戶撥打)郵箱:xieaijiao@cdsheji.com QQ:284888576
◆營業(yè)時間:365天·24小時,年中無休。
◆對應(yīng)業(yè)務(wù):與網(wǎng)站維護有關(guān)的任何商談和咨詢(網(wǎng)站維護、網(wǎng)站修改、網(wǎng)頁修改、網(wǎng)站安全、網(wǎng)站殺毒、網(wǎng)站中毒、網(wǎng)站備份、網(wǎng)站恢復(fù)、網(wǎng)站備案、網(wǎng)站建設(shè)、技術(shù)咨詢、網(wǎng)站域名、網(wǎng)站空間、企業(yè)郵箱等)