靜態網頁中的內容就是HTML, CSS, Java Script所創建的網頁
靜態網站上的每個頁面都存儲為單個 HTML 文件,該文件完全按原樣從伺服器直接傳送到用戶端
如果把靜態網頁部屬到雲端上,例如放到netlify(伺服器server),netlify只需將存好的資料送到客戶端client就好
優點:
由於網頁都以預先製作完成,伺服器的工作只是傳送文件, 無需從數據庫找資料或在server side script做驗證等工作,所以加載速度會比動態網頁快速。由於頁面加載速度是谷歌評估網站性能的關鍵部分(對 SEO 和排名性能有影響),這個優點不應被低估
靜態網站的創建和發布速度更快,因為它們複雜度較低,並且不需要有組織的連接到資料庫。網頁製作完成後,靜態網頁的部署較簡單,因為只需要將文件放置到伺服器上即可。相對的,動態網頁需要避免資料庫被駭客入侵、攻擊,設定伺服器端腳本與資料庫都需要額外工作
靜態網頁不與數據庫連接,也不使用外部套件。數據庫與外部套件都可以成為攻擊的常見入口點
缺點:
可擴展性 -> 做好一個模板,連結數據庫之後,數據庫有甚麼,網頁就會有不同樣子
雖然可以使用靜態網站構建數百個頁面,但這始終是一個緩慢而漫長的過程。網頁因為沒有連結儲存使用者資訊的數據庫,無法針對每個使用者提供客製化的內容
靜態網站的創建速度可能更快,但管理起來可能更耗時。 因為需要逐頁編輯靜態網站,並且隨著網站頁面更多,不斷大量更新快速變化的內容耗時又耗力
使用伺服器端腳本server-side script和技術構建的動態網站允許根據用戶行為,即時地顯示每個頁面的不同內容
通常動態網站用於內容繁重且與用戶互動頻繁的網站
電子商務網站、社群網站、在線論壇、會員網站、串流影音平台等等是其他常見的動態網頁類型
優點:
維護更容易且更快
使用數據庫來儲存資料,每個網頁的製作依賴伺服器端腳本server-side script去抓取資訊並且生成網站
可擴展性
若從一開始就沒有計劃建立一個大型網站,動態網站的架構也可以讓我們在必要時進行擴展
更好的用戶體驗
動態網站提供根據用戶需求量身定制的內容
功能更強大
伺服器端腳本可用更多更強大的演算法來增加網頁功能性
缺點:
需要更多資源才能建立
由於設定數據庫並將其連接到正確頁面所需的額外步驟,動態網站的設置和運行可能會更加複雜,這也意味著成本更高
性能問題
動態網站比靜態網站有更多的處理指令,不斷從數據庫提取信息以顯示網頁內容都需要時間來處理和執行
過去採用Java、Ruby作為後端開發的原因,是因為JavaScript沒辦法直接拿來當成一門程式語言,獨立於瀏覽器來運作
Node.js 是能夠在伺服器端運行 JavaScript 的開放原始碼、跨平台執行環境
在 Node.js 出現之前,JavaScript 通常作為瀏覽器上的客戶端程式設計語言使用,以JavaScript 寫出的程式通常能夠在使用者的瀏覽器上執行
Node.js 的出現使 JavaScript 也能用於伺服器端腳本編寫,其內部採用V8 JavaScript執行引擎作為核心引擎
下一篇文章學習Module Wrapper。