Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

網站會不定期發佈技術筆記、職場心得相關的內容,歡迎關注本站!

網站
首頁關於我部落格
部落格
分類系列文

© 新人日誌. All rights reserved. 2020-present.

SSR、CSR、SSG、ISR 是什麼?一次搞懂四種網頁渲染方式

最後更新:2026年3月17日基礎概念

你是否曾經看到 SSR、CSR、SSG、ISR 這些縮寫,卻完全不知道它們在說什麼?

這篇文章會帶你從頭理解這四種渲染方式的差別、各自的優缺點,以及什麼情況下該選哪一種。

先搞懂這四個縮寫的意思

  • SSR:Server Side Rendering(伺服器端渲染)
  • CSR:Client Side Rendering(客戶端渲染)
  • SSG:Static Site Generation(靜態網站生成)
  • ISR:Incremental Static Regeneration(增量靜態再生)

光看名字還是很抽象對吧?

別擔心,我們先來了解一個網頁從「開發完成」到「呈現在使用者螢幕上」會經過哪些步驟,因為這四種方式的差異,全都藏在這個流程裡。

網頁從開發到顯示的三個步驟

每個網站從「開發者寫完程式碼」到「使用者看到畫面」,都會經歷以下三個階段。

理解這三個步驟非常重要,因為 SSR、CSR、SSG、ISR 的所有差異,其實就是「這三個步驟各自花多少時間、由誰來做」的不同分配方式。

第一步:Build(建置)

開發者在寫程式時,通常會使用一些比較新的語法(例如 TypeScript)或工具(例如 React),但瀏覽器和伺服器並不認識這些東西,它們只看得懂最基本的 HTML、CSS 和 JavaScript。

所以在把網站部署上線之前,需要先執行一道「Build」程序,把開發者寫的程式碼轉換成瀏覽器和伺服器真正能執行的格式。

Build 這個步驟就是在做這件事:

  • 把 TypeScript 編譯成 JavaScript
  • 把多個 JavaScript 檔案打包成一個或少數幾個檔案(Bundle)
  • 把 CSS 壓縮、圖片最佳化
  • 移除開發用的除錯資訊,讓檔案更小、更快

Build 通常發生在「開發者把程式碼部署到伺服器之前」,也就是還沒有任何使用者造訪的時候。

這個步驟的特點是:只做一次(或每次更新程式碼時重做一次),不會因為使用者增加而變慢。

第二步:Server(伺服器處理請求)

當使用者在瀏覽器輸入網址、按下 Enter 的那一刻,其實是在向伺服器「發出請求」,告訴它:「我想看這個頁面。」

伺服器收到請求後,會從資料庫撈取需要的資料、組出 HTML 頁面,再傳回給使用者。

這個步驟的特點是:每次有使用者造訪就會觸發一次,使用者越多、頻率越高,所以伺服器越忙、成本越高。

第三步:Client(客戶端渲染)

「Client」指的就是使用者的瀏覽器,也就是 Chrome、Safari、Firefox 這些應用程式。

瀏覽器從伺服器收到資料後,需要把它轉換成你實際看到的畫面,這個過程就叫做「渲染」。

伺服器傳來的資料通常是 HTML、CSS 和 JavaScript 檔案。

瀏覽器會先讀取 HTML,決定頁面上有哪些元素(標題、段落、圖片等),再套用 CSS 決定每個元素的樣式(顏色、大小、位置),最後執行 JavaScript 讓頁面能夠互動(按鈕點擊、表單送出等)。

這個步驟的特點是:發生在使用者的裝置上,所以工作量越大,低階手機或舊電腦的使用者感受越差。

這三個步驟各自花多少時間、由誰來承擔,就是 SSR、CSR、SSG、ISR 最大的差別所在。

接下來我們就來看每一種方式是怎麼運作的。

傳統伺服器渲染是什麼?最古老的網頁渲染方式

在 React 等前端框架出現之前,網頁基本上都是用這種方式運作的。

傳統伺服器渲染流程特色

傳統 SSR 的 Build 時間短

這個階段只需要把程式碼編譯打包成可以執行的格式,不需要做任何與頁面內容相關的事情。

傳統 SSR 的 Server 負擔最重

每次使用者發出請求,伺服器都要即時執行以下流程:連線資料庫、撈取這個使用者需要的資料、把資料填進 HTML 模板、組出完整的頁面,最後再把頁面傳給使用者。

這整個過程每次請求都要重新走一遍,使用者越多、伺服器越忙。

傳統 SSR 的 Client 幾乎不用做任何事

因為伺服器已經把完整的 HTML 頁面傳過來了,瀏覽器只需要直接顯示就好,不需要額外執行任何 JavaScript 來組出內容。

如何辨識傳統伺服器渲染

每次點擊連結,整個頁面都會重新載入(Full Page Refresh),通常就是傳統伺服器渲染。

CSR 是什麼?客戶端渲染的運作方式與優缺點

這是 React 等前端框架剛出現時,最常見的做法。

CSR 流程特色

CSR 的 Build 時間短

和傳統伺服器渲染一樣,這個階段只需要把程式碼編譯打包,不需要做任何與頁面內容相關的事情。

CSR 的 Server 幾乎不做任何事

使用者發出請求後,伺服器只是把一個幾乎空白的 HTML 檔案和一堆 JavaScript 檔案傳給使用者,完全不做任何額外處理。

這個空白的 HTML 檔案裡幾乎沒有任何內容,只有一個空的 <div> 和幾個 <script> 標籤,用來載入 JavaScript。

CSR 的 Client 負擔最重

瀏覽器收到空白 HTML 之後,需要下載並執行所有的 JavaScript,再由 JavaScript 去呼叫 API 取得資料、組出頁面結構、套上樣式,最後才把內容顯示出來。

這意味著在 JavaScript 還沒執行完之前,使用者看到的只是一片空白。

裝置越慢、網路越差,等待時間越長。

如何確認一個網站是 CSR

你可以在瀏覽器對著網頁按右鍵 → 「檢視頁面原始碼」,如果你看到的 HTML 裡面幾乎是空的,只有一些 <script> 標籤,那這個網站就是 CSR。

適合的情境:

  • 快速搭建不需要伺服器的網站(例如 prototype、內部工具)。
  • 不在乎 SEO 的應用程式。

缺點:

  • SEO 差,因為搜尋引擎爬到的是空白 HTML。
  • 使用者裝置越慢,畫面出現的時間越長。

SSR 是什麼?伺服器端渲染如何解決 CSR 的問題

SSR 結合了傳統伺服器渲染與 CSR 的優點,是目前許多現代框架(例如 Next.js)的主要做法。

SSR 流程特色

SSR 的 Build 時間短

和 CSR 一樣,這個階段只需要把程式碼編譯打包,不需要預先生成任何頁面內容。

SSR 的 Server 負責組出完整的 HTML

使用者發出請求後,伺服器會連線資料庫、撈取需要的資料,再把資料填進頁面模板,組出一份完整的 HTML,才傳給使用者。

所以使用者收到的不是空白頁面,而是已經有內容的完整頁面,可以立即看到畫面,不需要等待 JavaScript 執行。

SSR 的 Client 只需要執行 Hydration

瀏覽器收到完整 HTML 後,頁面雖然看起來已經有內容,但這時候還是一個「靜止的」頁面,按鈕點不了、表單沒有反應。

瀏覽器接著會載入 JavaScript,把 React 等前端框架和現有的 HTML 連結起來,讓頁面上的互動功能生效,這個過程就叫做 Hydration。

Hydration 的字面意思是「補水」。

這個命名其實很直觀:SSR 傳來的 HTML 有結構、有內容,但缺少互動邏輯,就像脫水的狀態,只有外型但沒有生命力。

Hydration 做的事,就是把 JavaScript 的互動邏輯「注入」進去,讓頁面從靜態變成可以互動的動態應用。

這和 CSR 不同。

CSR 是瀏覽器拿到空白 HTML,要用 JavaScript 從頭把整個頁面內容組出來。

Hydration 則是頁面內容已經在 HTML 裡了,JavaScript 只需要接管互動功能,工作量少很多。

適合的情境:

  • 需要登入功能、個人化資料等動態內容的網站。
  • 重視 SEO 的網站(因為 HTML 是完整的)。
  • 需要在低階裝置上有良好體驗的應用程式。

SSG 是什麼?靜態網站生成的優缺點與適用情境

SSG 的概念是「把所有工作都在 Build 階段做完」,讓伺服器和客戶端都輕鬆。

SSG 流程特色

SSG 的 Build 時間長

這是 SSG 和其他方式最大的不同。

Build 時不只是編譯打包程式碼,還會把網站裡每一個頁面的 HTML 全部提前生成好,並存成靜態檔案。

如果你的網站有 100 篇文章,Build 時就會生成 100 個 HTML 檔案,每一個都是完整的頁面,裡面已經填好所有資料。

SSG 的 Server 幾乎不做任何事

使用者發出請求後,伺服器不需要連線資料庫、不需要組頁面,只是把 Build 時已經生成好的 HTML 檔案直接傳出去。

SSG 的 Client 負擔極小

瀏覽器收到完整的 HTML,幾乎不需要做任何額外處理,直接顯示就好。

不需要像 CSR 一樣執行大量 JavaScript 才能看到內容,也不需要像 SSR 一樣執行 Hydration,頁面載入速度非常快。

為什麼 SSG 這麼快?

因為 SSG 的頁面是在 Build 時就已經生成好的靜態檔案,伺服器不需要做任何運算,可以直接傳出去。

這種「不需要即時處理」的特性,讓這些檔案可以提前複製到全球各地的 CDN(內容傳遞網路)伺服器上。

當使用者發出請求,CDN 會自動把請求導向距離最近的節點,讓使用者直接從附近拿到檔案,不需要繞到遠端的原始伺服器,速度非常快。

SSR 和 CSR 無法這樣做。

SSR 的頁面是根據每個使用者的請求即時產生的。

例如登入後看到自己的名字、購物車、個人化推薦等,每個人看到的內容可能都不一樣。

所以無法提前生成一份靜態檔案放到 CDN 上讓所有人共用。

CSR 則需要在瀏覽器端執行 JavaScript 才能組出內容,同樣沒有可以直接分發的靜態檔案。

適合的情境:

  • 部落格、技術文件、行銷官網等內容相對固定的網站。
  • 對效能和 SEO 都有極高要求的網站。

缺點:

  • 無法處理動態內容(例如使用者登入後看到不同的資料)。
  • 如果網站頁面數量龐大(例如有上萬個商品的電商),Build 時間可能長達數小時,甚至更久。

ISR 是什麼?增量靜態再生如何結合 SSG 與 SSR

ISR 可以說是 SSG 和 SSR 的混合體,專門解決 SSG 在「動態資料」和「頁面太多」這兩個痛點。

ISR 流程特色

ISR 的 Build 時間比 SSG 短

SSG 在 Build 時要把所有頁面全部生成完,如果網站有上萬個頁面,Build 時間可能長達數小時。

ISR 不需要這樣做,Build 時只需要先生成最重要或最常被造訪的頁面,其他頁面等到使用者第一次造訪時再生成就好,大幅縮短了 Build 的時間。

ISR 的 Server 處理時間比 SSR 短

ISR 的伺服器有兩種情況:

如果使用者請求的頁面已經有快取好的靜態版本,伺服器直接把它傳出去,就和 SSG 一樣快,幾乎不需要做任何運算。

如果使用者請求的頁面資料已經過期,或者是第一次被造訪、還沒有靜態版本,伺服器才會重新生成這個頁面,然後把新版本快取起來,之後的使用者就能拿到快取好的版本了。

ISR 的 Client 負擔極小

和 SSG 一樣,瀏覽器收到的是完整的 HTML,直接顯示就好,不需要執行大量 JavaScript 來組出內容。

ISR 的運作邏輯

上面的圖可以看到兩根柱子,分別代表 ISR 的兩種情況。

Cached(快取命中):使用者請求的頁面已經有快取好的靜態版本,伺服器直接傳出去,幾乎不需要任何處理,所以柱子很短。

Out Of Date(資料過期):使用者請求的頁面資料已經過期,或者是第一次被造訪還沒有靜態版本,伺服器需要重新生成這個頁面,所以 Server 的部分比較長。

以一個商品有上萬個的電商網站為例。

Build 時只需要先生成熱門商品的頁面,其他頁面等到使用者第一次造訪時再生成,這就是 Out Of Date 的情況。

一旦頁面生成並快取後,之後造訪的使用者就會走 Cached 的流程,速度和 SSG 一樣快。

當商品資料更新後,也不需要重新 Build 整個網站,只要下一個使用者造訪該頁面,ISR 就會在背景自動重新生成最新版本,之後所有人都會拿到更新後的頁面。

適合的情境:

  • 頁面數量龐大但更新頻率不高的電商網站。
  • 使用 CMS(內容管理系統,例如 WordPress)的網站,內容偶爾更新但不是每秒都在變。

SSR、CSR、SSG、ISR 怎麼選?

方式Build 時間伺服器負擔客戶端負擔支援動態內容適合場景
傳統 SSR短重幾乎沒有✅早期伺服器應用
CSR短幾乎沒有重✅快速搭建、內部工具
SSR(現代)短中輕✅需要動態資料且重視 SEO 的網站
SSG長幾乎沒有輕❌部落格、靜態官網
ISR中輕輕✅(更新頻率低)大型電商、CMS 網站
Build 時間短
伺服器負擔重
客戶端負擔幾乎沒有
支援動態內容✅
適合場景早期伺服器應用
Build 時間短
伺服器負擔幾乎沒有
客戶端負擔重
支援動態內容✅
適合場景快速搭建、內部工具
Build 時間短
伺服器負擔中
客戶端負擔輕
支援動態內容✅
適合場景需要動態資料且重視 SEO 的網站
Build 時間長
伺服器負擔幾乎沒有
客戶端負擔輕
支援動態內容❌
適合場景部落格、靜態官網
Build 時間中
伺服器負擔輕
客戶端負擔輕
支援動態內容✅(更新頻率低)
適合場景大型電商、CMS 網站

一個簡單的判斷流程:

  • 網站內容完全靜態(部落格、文件)→ 優先選 SSG。
  • 頁面很多、偶爾更新 → 選 ISR。
  • 有動態資料、需要使用者登入 → 選 SSR(現代版)。
  • 只是要快速做一個 demo 或不需要 SEO → 選 CSR。

總結:SSR、CSR、SSG、ISR 的差異與選擇

這四種渲染方式其實都在解決同一個問題:「網頁要怎麼又快又好地呈現給使用者?」

  • CSR 把工作全推給客戶端,設備越慢越痛苦。
  • SSR 讓伺服器分擔工作,客戶端輕鬆很多。
  • SSG 把所有工作提前在 Build 時做完,伺服器和客戶端都輕鬆,但不適合動態內容。
  • ISR 結合 SSG 和 SSR 的優點,適合頁面多但不需要即時更新的網站。

沒有哪種方式是「最好的」,選擇適合自己專案需求的才是最重要的。

目前還沒有留言,成為第一個留言的人吧!

發表留言

留言將在審核後顯示。

基礎概念

目錄

  • 先搞懂這四個縮寫的意思
  • 網頁從開發到顯示的三個步驟
  • 第一步:Build(建置)
  • 第二步:Server(伺服器處理請求)
  • 第三步:Client(客戶端渲染)
  • 傳統伺服器渲染是什麼?最古老的網頁渲染方式
  • 傳統伺服器渲染流程特色
  • 如何辨識傳統伺服器渲染
  • CSR 是什麼?客戶端渲染的運作方式與優缺點
  • CSR 流程特色
  • 如何確認一個網站是 CSR
  • SSR 是什麼?伺服器端渲染如何解決 CSR 的問題
  • SSR 流程特色
  • SSG 是什麼?靜態網站生成的優缺點與適用情境
  • SSG 流程特色
  • 為什麼 SSG 這麼快?
  • ISR 是什麼?增量靜態再生如何結合 SSG 與 SSR
  • ISR 流程特色
  • ISR 的運作邏輯
  • SSR、CSR、SSG、ISR 怎麼選?
  • 總結:SSR、CSR、SSG、ISR 的差異與選擇