偽靜態(tài)技術介紹與優(yōu)缺點分析(較完整篇)
來源:易賢網 閱讀:1013 次 日期:2014-08-11 17:32:16
溫馨提示:易賢網小編為您整理了“偽靜態(tài)技術介紹與優(yōu)缺點分析(較完整篇)”,方便廣大網友查閱!

1、靜態(tài)網頁與動態(tài)比較:

1)靜態(tài)網頁:

優(yōu)勢:A、 對搜索引擎友好,被收錄的質量高;B、訪問速度快;C、資源(cpu 等)占用少。

劣勢:A、對于大型門戶,或者社區(qū)來說,不斷的修改將會產生大量I/O,會導致磁盤出現碎片甚至出現磁盤壞道。相當恐怖一個隱患。用戶信息一旦沒有了就沒戲玩了。B、儲存空間占用會多一些。

2)動態(tài)網頁:

優(yōu)勢:相對于靜態(tài),它的劣勢也就是動態(tài)的優(yōu)勢所在——占用空間少,對硬盤友好。

劣勢:A、對搜索引擎不友好。搜索引擎會不收錄帶問號的網址?因為搜索引擎怕由于問號而進入死循環(huán)。詳細可見另外一篇札記(學習札記——網頁搜索基礎知識 )

B、高并發(fā)時資源占用較多。

而偽靜態(tài)就是在這樣背景下應運而生了,它在保留動態(tài)的優(yōu)點的基礎上,使得網址靜態(tài)化,也就是讓網址里不帶問號,騙過收錄的爬蟲就行了。這樣完美地糅合了前邊兩者的優(yōu)點。

優(yōu)點:靜態(tài)的優(yōu)點+動態(tài)的優(yōu)點

不足:流量稍大一些使用偽靜態(tài)就出現CPU使用超負荷,由于偽靜態(tài)是用正則判斷而不是真實地址,分辨到底顯示哪個頁面的責任也由直接指定轉由CPU來判斷了,所以CPU占有量的上升,確實是偽靜態(tài)最大的弊病.

實現機制:是利用服務器端,對請求的動態(tài)頁面做改動,讓瀏覽器認為訪問的也是靜態(tài)頁面,這個時候,瀏覽器地址欄中顯示的就是靜態(tài)地址信息(不帶問號)了。

兩種實現方法:

1、使用ISAPI_Rewrite進行動態(tài)鏈接重寫HTML靜態(tài)網址。ISAPI_Rewrite是一個dll組件,re_write是iis里的一個模塊。這個篩選器實現是通過正則表達式,將動態(tài)網頁網址映射成為靜態(tài)網址。如可將news.asp?id=95通過re_write將其轉換成news/95.html。映射的正則表達式在httpd.ini文件里進行設置。

舉個小小例:處理數據翻頁,那么寫法是:

More_<%=Page%>_<%=type%>.html (注:page是翻頁頁數,type是數據類型)表現形式:More_1_95.html

如果翻下一頁,則為:More_2_95.html,繼續(xù)下一頁的循環(huán),則是:

More_3_95.html,以此類推。

不過你需要在httpd.ini文件中增加以下代碼:

RewriteRule /More_(\d+)_(\d+)\.html /jsp/more\.asp\?page=$1&type=$2 [N,I] 字串9

如果你的動態(tài)程序有多個參數需要傳遞,那么就增加多個(\d+)即可,如下:

RewriteRule /More_(\d+)_(\d+)_(\d+)\.html /asp/more\.asp\?page=$1&type=$2&type2=$3 [N,I]

優(yōu)點:在程序上基本不需做什么變化。麻煩:要實現這個需要對iis進行控制,所以當你租用別人的服務器時,則需要先跟服務商聯系。(當然這個是對asp而言,asp.net就不用——直接將dll程序集放到程序中的bin再適當的配置即可實現)

2、IIS的404錯誤處理機制:通過自定義錯誤,轉向我們準備好的處理頁。不過這種可拓展性有待研究,對程序處理的統(tǒng)籌要求也高,不大適合實際應用的樣子。

首先,設置站點屬性-自定意錯誤

找到HTTP錯誤404,然后編輯屬性->消息類型選中URL->URL填入“/index.asp”,或您的錯誤處理頁面.

這樣,比如用戶或蜘蛛訪問http://tech.todo.net.cn/12345.html 時(12345為文章在數據庫的ID).由于些頁面不存在,所以觸發(fā)了404錯誤.轉向了index.asp

在index.asp里加

CurrDomain=Request.ServerVariables("HTTP_HOST") '當前訪問域名

CurrURL=Replace(Request.ServerVariables("QUERY_STRING"),"404;http://"&CurrDomain&":80","") '當前訪問URL

此時的CurrURL應該是:12345.html .

這樣,就得到用戶正在試圖訪問的頁面.然后提取里邊的文章ID(應該為:12345),用正則,這里就不多說了.

然后到數據庫里提取出文章內容.輸出到頁面里,就OK了.

結論:偽靜態(tài)太適合用在普通的企業(yè)網站上了——既不要求高并發(fā),但同時又很在乎seo(搜索引擎優(yōu)化),而且也要求后臺可動態(tài)更新。——當然實現直接生成靜態(tài)頁也行,因為這種不像社區(qū)那種修改量那么大。

更多信息請查看IT技術專欄

更多信息請查看網絡編程

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權所有:易賢網