03.06 什麼是網頁靜態化?有什麼好處嗎?

95後程序猿小A


網頁靜態化,是為了加速網頁的訪問,提高網站的負載,利於搜索引擎抓取。


靜態頁面

靜態頁面是指頁面上的內容是死的,不會變的;如果網站的頁面是純 html 頁面的話,當用戶訪問頁面不需要經過數據的讀取和處理,就能得到文件,所以訪問速度會非常的快,相同的服務器資源,靜態頁面可以支持更高的訪問量;純靜態的網頁對搜索引擎友好,容易被搜索引擎收錄,動態網頁中的 [?] 讓搜索引擎很難辦,因為它可能從數據庫中把所有的數據都抓取出來,所以搜索引擎通常不抓取 url 中 [?] 以後的內容;因為是靜態頁面,所以也不會存在 SQL 注入之類的問題;

靜態頁面都是一個一個的 html 文件,如果網站內容更新的頻率比較高的話,就會生成或更新大量的文件,如果靜態頁面的模板需要變化的時候,這個更新量就更恐怖了;另外靜態頁面的交互性比較差。


動態頁面

動態頁面是指頁面上的內容是活的,可能是從數據庫中讀取出來的,或者從其他什麼地方獲取到的;因為頁面的數據是動態讀取、拼接展示的,所以應用不需要佔用太大的空間,當數據發生變化時,頁面幾乎不需要修改,就可以實時生效,維護起來更為方便;

但是動態頁面由於需要讀數據庫或緩存,花費的時間勢必會更長,更為關鍵的是,如果併發量很大,數據庫的讀取速度會成為瓶頸;還有上面說到的,動態頁面難以被搜索引擎收錄,不利於 SEO;另外就是容易受到攻擊。


網頁靜態HTML化

網頁靜態化,就是將動態網頁變成靜態網頁的過程。這個方案,會有一個靜態化服務,將動態的數據生成靜態化的頁面;這個過程,可能會生成大量的 html 頁面。

如圖:


偽靜態化

什麼是偽靜態?

比如我們要訪問一個商品頁面:http://www.xxx.com/product?id=1

id = 1 表示展示的是商品編號為 1 的商品,但是由於這種 url 不利於搜索引擎的抓取,所以通常會改造成 http://www.xxx.com/product/1.html ,這樣就讓搜索引擎認為是個靜態頁面,偽靜態頁面會對 url 進行 rewrite。

靜態化是真真正正生成一個個 html 頁面的,而偽靜態化只是偽裝了 url,實際還是需要做動態處理。

偽靜態化不需要生成 html 頁面,頁次更節約服務器空間;偽靜態化雖然需要做動態處理,但是可以將變化的數據放到緩存服務器中,不需要從數據庫讀取數據;當然,和純靜態化相比,偽靜態化的速度還是慢一些的。


我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。


分享到:


相關文章: