網站靜態化方案(一)靜態化原理

網站靜態化方案(一)靜態化原理

時間:2016-10-26 15:52:04
做者:zhongxia
原文地址:https://github.com/zhongxia245/blog/issues/39php

網站靜態化,看產品或者網站的需求,不要爲了靜態化而靜態化。
這裏主要講一些原理,沒有具體的實例。css

1、 爲何要靜態化?

  1. 加快頁面打開瀏覽速度,靜態頁面無需鏈接數據庫打開速度較動態頁面有明顯提升;前端

  2. 有利於搜索引擎優化SEO,Baidu、Google都會優先收錄靜態頁面,不只被收錄的快還收錄的全;git

  3. 減輕服務器負擔,瀏覽網頁無需調用系統數據庫;github

  4. 網站更安全,HTML頁面不會受php相關漏洞的影響; 觀看一下大一點的網站基本全是靜態頁面,並且能夠減小攻擊,防sql注入。web

固然有好處,也有不足?算法

  1. 信息不一樣步。只有從新生成HTML頁面,才能保持信息同步。sql

  2. 服務器存儲問題。數據一直增長,靜態HTML頁面會不斷增長,會佔用大量的磁盤。須要考慮這個問題數據庫

  3. 靜態化算法的精密性。要良好的處理數據與網頁模板,及各類文件連接路徑的問題,這就要求咱們在靜態化的算法中考慮到方方面面。稍有細小疏忽,將致使生成的頁面中存在這樣或那樣的錯誤連接,甚至存在死鏈。所以,咱們必須恰到好處的解決這些問題。既不能增長算法的可能性,又要照顧到方方面面。作到這一點,的確不容易。apache

2、PHP靜態化

參考文章:《分享常見的幾種頁面靜態化的方法》

PHP靜態化的簡單理解就是使網站生成頁面以靜態HTML的形式展示在訪客面前,PHP靜態化分純靜態化僞靜態化,二者的區別在於PHP生成靜態頁面的處理機制不一樣。

純靜態化:PHP生成HTML文件
僞靜態化:把內容存放在nosql內存(memcached),而後訪問頁面的時候,直接從內存裏面讀取。

大型動態網站靜態化

參考文章:《大型網站的靜態化處理》

大型網站(高訪問量,高併發量),若是是靜態網站,能夠經過擴展足夠多的 web服務器,而後支持超大規模的併發訪問。

若是是一個動態的網站,特別是使用到了數據庫的網站是很難作到經過增長web服務器數量的方式來有效的增長網站併發訪問能力的。好比淘寶,京東。

靜態化方案:

大型靜態網站之因此可以快速響應高併發,由於他們儘可能把動態網站靜態化。

  1. js,css,img等資源,服務端合併在返回

  2. CDN 內容分發網絡技術【網絡傳輸的效率跟距離長短有關係的原理,經過算法,計算最近的靜態服務器節點】

  3. web服務器動靜結合。頁面有一部分是一直不變的,好比 header, footer 部分。 那麼這一部分是否能夠放在緩存。web服務器 apache或ngnix, appache有一個模塊叫作ESI,CSI。可以動靜拼接。把靜態的部分緩存在 web服務器上,而後和服務器返回的動態頁面拼接在一塊兒。

  4. 瀏覽器實現動靜結合,前端MVC。

相關文章
相關標籤/搜索