偽靜態

偽靜態

偽靜態是相對真實靜態來講的,通常我們為了增強搜尋引擎的友好面,都將文章內容生成靜態頁面,但是有的朋友為了實時的顯示一些信息。或者還想運用動態腳本解決一些問題。不能用靜態的方式來展示網站內容。但是這就損失了對搜尋引擎的友好面。怎么樣在兩者之間找箇中間方法呢,這就產生了偽靜態技術。就是展示出來的是以html一類的靜態頁面形式,但其實是用ASP一類的動態腳本來處理的。

IIS的404錯誤處理機制來實現的。這個比rewrite技術要靈活的多。

首先,設定站點屬性-自定義錯誤,找到HTTP錯誤404,然後編輯屬性->訊息類型選中URL->URL填入“/index.asp”,或您的錯誤處理頁面。

這樣,比如用戶或蜘蛛訪問http://網址XXX/12345.html時(12345為文章在資料庫的ID).由於這些頁面不存在,所以觸發了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了。

這樣。用戶或蜘蛛看到的URL還是他訪問的URL.而我們對內容的處理上可以用到了動態技術。這就是我們想要的結果。說得簡單了一些。但是基本思路就是這樣了。

基本介紹

  • 中文名:偽靜態
  • 外文名:Pseudo static
  • 解釋:相對真實靜態
  • 類別:計算機
區別靜態,主要不足,如何選擇,相關評論,方法步驟,

區別靜態

  1. URL結構以及頁面名稱看,偽靜態和靜態頁面是一樣的。偽靜態的頁面後綴可以是html htm 或者是目錄格式
  2. 偽靜態只是改變了URL的表現形式,實際上還是動態頁面
  3. 靜態頁面可以節省伺服器資源,而偽靜態嚴格說是增加伺服器資源消耗的
總結,在SEO方面,偽靜態和靜態頁面的功能是相同的,但是偽靜態本質上還是動態頁面,所以消耗資源是和動態頁面一樣的,而且因為Rewrite伺服器還需要消耗額外的資源。

主要不足

1、當然猶如一篇文章的作者所說的:"如果流量稍大一些使用偽靜態就出現CPU使用超負荷,我的同時線上300多人就掛了,而不使用偽靜態的時候同時線上超500人都不掛,我的IIS數是1000。”確實是這樣的,由於偽靜態是用正則判斷而不是真實地址,分別顯示哪個頁面的責任也由直接指定轉由CPU來判斷了,所以CPU占有量的上升,確實是偽靜態最大的弊病。
2、網站承受力低。
另外,會造成網站可承受同時線上人數劇減。如果你的網站可以保證1000人同時訪問的話,那么做了偽靜態處理之後,300人訪問就足以讓你網站掛掉。
3、網頁打開慢。
偽靜態頁面打開速度快,簡直太搞笑了,偽靜態仍然要讀取資料庫,還額外的多了一個.重寫網址.的過程,其他的步驟絕對不會比動態少,怎么會快呢?
4、大量的重複頁面。
做了偽靜態後,原有的頁面也可以訪問,這就造成了大量的偽靜態頁面和動態頁面重複,對網站極為不好。
5、需要伺服器支持。
並不是所有的伺服器都支持偽靜態的,這無形中又增加了成本。
所以,如果網址中的動態參數沒有達到影響搜尋引擎收錄的程度,動態要比偽靜態好的多。
6、造成真正的靜態網頁無法訪問。
如果把php偽靜態成html,那么真正的靜態頁就無法訪問了。(可通過修改伺服器配置解決,可是你又何必去費這把力氣呢?)

如何選擇

1、使用真靜態和偽靜態對SEO來說沒有什麼區別
2、使用真靜態可能將導致硬碟損壞並將影響站點性能(這個實在是個謬論,非靜態的對硬碟的讀取次數勝過真靜態)
3、使用偽靜態將占用一定量的CPU占有率,大量使用將導致CPU超負荷
4、最重要的一點,我們要靜態是為了SEO
5、真靜態的訪問速度明顯比偽靜態的訪問速度要高
所以:
1、使用真靜態的方法可以直接排除了,因為無論怎么生成,對硬碟來說都是很傷的。(這個完全是亂講了,真靜態可以提高網站的性能,減少資料庫的訪問壓力,減少CPU和記憶體的壓力。)
2、既然真偽靜態的效果一樣,我們就可以選擇偽靜態了。
3、但是偽靜態大量使用會造成CPU超負荷
4、所以我們只要不大量使用就可以了。
5、既然偽靜態只是給搜尋引擎爬蟲看的,我們只需要偽靜態給搜尋引擎爬蟲就行了,不需要給用戶使用。
6、所以我們只要在專門提供給搜尋引擎爬蟲(搜尋引擎機器人)爬的Archiver中使用偽靜態就可以了。
在網上流傳了很多關於網站生成HTML靜態會對硬碟有損傷的說法(當然這裡的損傷概念是指相比普通的應用程式而言,非指任何系統和程式都會讓硬碟折壽類型的常規損傷)。但通過Google、百度並沒有發現出現過這個問題的真實例子存在,大部分都是道聽途說人云亦云並沒有一個比較合理的解釋,下面就這個問題來作一個簡單的分析。
首先,假設“網站生成HTML靜態會對硬碟有損耗”這個說法成立,這個問題影響最大的應該是IDC行業中的虛擬主機服務商,因為主流CMS、論壇系統、網店系統、部落格系統大多數都支持生成HTML靜態功能,而且一般情況下一台伺服器中都會存在100-300個虛擬主機同時運行,在有如此大的硬碟損耗的情況下,國內竟然沒有一家虛擬主機服務商限制生成HTML靜態站點在其虛擬主機上運行,這個現象是不是反常呢?是不是由於硬碟價格比較低虛擬主機服務商不在乎了呢?其實不然,因為想在短時間內恢復100-300個網站的數據並不是一件簡單的事情,同時基於網站穩定性和硬體成本方面的考慮虛擬主機服務商不可能不在乎。所以在IDC行業中“網站生成HTML靜態會對硬碟有損耗”一說法是不成立的。
其次,假設“網站生成HTML靜態會對硬碟有損耗”這個說法成立,那為什麼還會有那么多主流CMS、論壇、網店、部落格軟體公司去研發這個功能呢?這個現象是不是反常呢?因為生成HTML靜態功能可能造成用戶硬碟損壞而引起數據丟失,軟體開發公司是肯定需要承擔相應責任的,應該沒有哪家軟體公司會在增加自己研發成本的基礎上去開發一個對自己有負面影響的功能。所以在軟體行業中“網站生成HTML靜態會對硬碟有損耗”一說法是不成立的。
大家都知道對硬碟的操作主要分為“讀”與“寫”兩大部分,先分析生成HTML靜態對硬碟“讀”的影響:
現在以最常見的PHP動態網站為例,普通的PHP網站的執行過程是先讀取PHP檔案、然後根據PHP檔案中的代碼讀取資料庫中的數據,最後輸出到訪問者的瀏覽器中進行顯示。在這個執行過程中PHP檔案至少讀取一次(如果代碼中包含include之類的語句的話還需要讀取更多次),資料庫至少讀取一次(一般情況下需要讀取多次),在這個過程完成之前一般需要讀取硬碟2-20次左右,當然不同的WEB伺服器、資料庫、系統對IO的操作過程也不一樣,但基本可以初步了解到這個實現基本過程。
再來看“生成HTML靜態”網站的執行過程,很明顯執行過程就是直接讀取HTML檔案再傳輸到訪問者的瀏覽器進行顯示,對硬碟的讀取操作只有1次。
根據以上分析可以得出結論,“生成HTML靜態”網站只有普通動態網站讀取硬碟頻率的1/10,再加上“生成HTML靜態”網站可以利用瀏覽器的頁面快取,對硬碟讀取的頻率可以進一步降低,“生成HTML靜態”網站在硬碟的“讀”操作方面沒有任何損傷,反而可以更好的保護硬碟。
明白了生成HTML靜態對硬碟“讀”的影響,我們再來看看生成HTML靜態對硬碟“寫”的影響:
還是以現在最常見的PHP動態網站為例,PHP動態網站在添加文章時直接把數據寫入了資料庫,對硬碟進行了一次寫操作。而“生成HTML靜態”網站在寫入資料庫的同時把數據又寫入了檔案,對硬碟進行了兩次寫操作。但在實際項目中,我們只會把修改頻率非常低的內容生成HTML靜態,比如文章、商品內容,這些頁面的寫頻率本身就非常非常低的,比如我們站點發布的文章在發布後幾乎就不會再進行修改了。對於一個擁有10萬篇文章的站點來說,平均一篇文章修改1次,對硬碟的寫入次數也才20萬次,一般伺服器硬碟的使用壽命都在5-10年左右,其實再放大數萬倍也不至於達到能夠損傷硬碟的地步。不相信的朋友可以下載DiskCountersView軟體查看一下你自己的電腦在24小時內讀寫硬碟的次數,在普通情況下24小時內讀寫硬碟的次數就會超過了千萬次,如此計算20萬次硬碟寫入幾乎可以忽略不計。
根據以上的分析可以得出結論,“生成HTML靜態”網站比普通動態網站硬碟寫入頻率高2倍,但由於生成“生成HTML靜態”的內容幾乎不會再進行修改,所以對硬碟的寫入次數可以忽略不計,不會對硬碟造成任何損傷。
總結:在最有說話權的IDC行業和軟體行業中“生成HTML靜態頁面對硬碟有損傷”的說法並不成立,而且通過技術分析也證明生成HTML靜態頁面並不會對硬碟造成任何損傷,相反還可以極大的降低對硬碟、資料庫的讀取操作頻率,提高站點訪問速度。

相關評論

真正的靜態化和偽靜態還是有本質的區別的。為瀏覽用戶處理一個純粹html和一個調用多個數據的php在CPU的使用率方面明顯前者少。記得原來有個人說html下載硬碟讀寫頻繁,他這么說好像讀取資料庫不用讀寫磁碟似的,何況還有一大堆快取的零散php也是放在硬碟的,這些讀取不用磁碟操作么?
讀取單個html+圖片Flash等附屬檔案就可以實現的目的,何苦要讀資料庫又要讀php快取檔案又要重新整合數據輸出再+圖片Flash等附屬檔案這么大費周章呢?CMS首頁不需要很多的互動的,論壇那一套不應該拿到這裡來用,相反應該更多考慮的是:美觀!兼容!信息的直觀!性能!還有穩定!

方法步驟

需要的工具只有兩樣,首先就是需要..htaccess檔案,然後將創建好的.htaccess檔案用記事本打開輸入一下代碼:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
再保存上傳到網站根目錄下,第二步:進入wordpress後台,依次找到:【設定】處【固定連結】選擇【自定義結構】在【自定義結構】處填寫/%post_id%.html,最後就可以,如果你的網站裝了快取外掛程式需要更新一下。

相關詞條

熱門詞條

聯絡我們