SSR(サーバー描画)とハイドレーション

📖 このページのゴール:SSR=サーバーサイドレンダリング——「サーバーでHTMLを作って返す」やり方を、たとえで腹落ちさせます。前ページの SPA(ブラウザで全部描く)との違いを「最初に誰がHTMLを作るか」で見分けられるようになり、おまけの主役 ハイドレーション もスッキリ理解しましょう。 ← 目次・はじめにへもどる


🍳 たとえ:厨房で作って、皿で出す

前ページの SPA はこうでした。

🍳 SPA=材料(JS)を送って、客が自分で調理する。 席に着いてから材料が届き、自分でフライパンを振る。最初は待つけれど、いちど作れば以後はサクサク。

SSR はこれをひっくり返します。

🍳 SSR=厨房で料理を作って、皿に盛って出す。 席に着いたら、もうできあがった料理が目の前に出てくるすぐ食べられるのが最大のよさ。

つまり SSR は、画面の組み立て(レンダリング)を“客(ブラウザ)”ではなく“厨房(サーバー)”が先にやってくれるやり方です。

🟢 レンダリング=画面を組み立てて表示すること。 SPA はそれをブラウザでやり、SSR はサーバーでやる——ここがいちばんの分かれ目です。


🧩 しくみ:どこで・何が起きるか

SSR(Server Side Rendering =サーバーサイドレンダリング)の流れを、時間順に追ってみます。

① ブラウザ:ページを開きにいく(URLにアクセス)
        │
        ▼
② サーバー:その場でHTMLを“組み立てて”返す
        (中身が詰まった、完成形のHTML)
        │
        ▼
③ ブラウザ:受け取ったHTMLを すぐ表示!  ← もう読める/見える 👀
        │
        ▼
④ あとから JS が届く → 💧ハイドレーション
        (静的なHTMLに JS をかぶせて “動く” ようにする)
        │
        ▼
⑤ 完成:ボタンもフォームも反応する “生きた” ページに

ポイントは ② で「中身の詰まったHTML」が返ってくること。SPA が返すのは「ほぼ空のHTML+JSの束」でしたが、SSR は最初から見える状態のHTMLを返します。だから ③ ですぐ表示できるのです。

💧 ハイドレーション=乾物に水を戻す

ただし、② で返ってきたHTMLは“見た目だけ”。写真のようなもので、ボタンを押してもまだ反応しません。そこで ④ の出番です。

💧 ハイドレーション=乾物に水を戻す。 サーバーが作った“見た目だけのHTML(=乾物)”に、ブラウザでJS(=水)をかけると、ボタンやフォームが反応する“動くページ(=もどった食材)”になります。

「ハイドレーション(hydration)」は英語で「水分を与えること」。干ししいたけを水で戻すイメージそのままです。表示はサーバー製HTMLで一瞬、操作はあとからJSで追いつく——この二段構えが SSR の正体です。


🔁 SPA(CSR)との違い =「最初に誰がHTMLを作るか」

前ページの SPA(CSR=クライアントサイドレンダリング)と、役割分担で並べてみます。

  SPA(CSR) 🧑‍🍳客が調理 SSR 🍳厨房で調理
最初にHTMLを作る人 ブラウザ(届いたJSが組み立てる) サーバー(先に組み立てて返す)
サーバーが返すもの ほぼ空のHTML+JSの束 中身が詰まった完成HTML
初回表示 重め(JSを落として実行してから) 速い(届いた瞬間に見える)
SEO(検索エンジン対応) 弱め(昔ほどではない) 強い(最初から中身が見える)
サーバー 軽くてよい(置くだけ) 必要(毎回その場で組み立てる)
操作のサクサク感 いちど起動すれば◎ ハイドレーション後は◎

🟢 迷ったらこの一言:「最初の完成HTMLを、ブラウザが作る=SPA/サーバーが作る=SSR」。これさえ言えれば違いは押さえたも同然です。


👍 SSR が向いていること

  • 🔎 初回表示が速い … 厨房で作って出すので、開いた瞬間に中身が見える。「最初の1秒」が勝負のサイトに効く。
  • 🔎 SEOに強い … 検索エンジンのロボットに最初から中身の入ったHTMLを見せられる。検索流入が大事なサイトの定番。
  • 🔒 秘密をサーバー側で扱える … APIキーやDBアクセスをサーバーの中で処理してから、結果のHTMLだけ返せる。鍵をフロントに出さずに済む(横断の鉄則とも地続き)。
  • 🌐 公開Webアプリ・EC・メディア向き … 「誰でも見る・検索から来る・最初の表示が速いほどよい」ページにぴったり。

🔒 復習:SPAでもAPIキー・秘密はフロントに出さないのが鉄則。SSR は「サーバー側で秘密を扱える」ぶん、ここが構造的にラクになります。

👎 SSR が向かない・注意したいこと

  • 💰 サーバーが要る=コストと手間 … 「皿に盛って出す厨房」が常に必要。置くだけで済む SPA より運用が重く・複雑になりがち。
  • 💧 ハイドレーションのズレ問題 … サーバーが作ったHTMLと、ブラウザのJSが想定するHTMLが食い違うと、表示が崩れたり警告が出たりする(”hydration mismatch”)。初心者がハマりやすい定番のつまずき。
  • ⏱️ TTFB はサーバー処理しだいTTFB=Time To First Byte(最初の1バイトが届くまでの時間)。SSR は毎回サーバーで組み立てるので、サーバーが遅い/混むと、最初の表示まで逆に待たされることも。「作り置き」で先回りする次ページの SSG とは、ここが対照的。

🔧 応用メモ(読み飛ばしOK): ②で返したHTMLと④のJSが噛み合わないと起きるのがハイドレーションのズレ。「サーバーとブラウザで同じ結果になるよう書く」のがコツ、とだけ覚えておけば十分です。


🏢 代表ツール

「SSRをやってくれるフレームワーク」は、たいてい React や Vue の上に乗った“メタフレームワーク”として提供されます(詳しくは第9章)。

ツール 土台 ひとこと
Next.js React SSR の超定番。ハイブリッドも得意(9章で詳述)
Nuxt Vue Vue 版の定番。Next.js に対応する立ち位置

🟢 まずは名前だけでOK:React なら Next.js、Vue なら Nuxt。「SSRしたい=この2つのどちらか」と覚えておけば、最初は迷いません。


🗒️ ことばメモ

ことば よみ/英語 やさしい言い換え
SSR エスエスアール/Server Side Rendering サーバーでHTMLを作って返すやり方
レンダリング 画面を組み立てて表示すること
ハイドレーション hydration(=水を与える) 💧 静的HTMLにJSをかぶせて“動く”ようにする
TTFB ティーティーエフビー/Time To First Byte 最初の1バイトが届くまでの時間。サーバーが遅いと延びる
SEO エスイーオー/Search Engine Optimization 検索で見つけてもらいやすくすること

🟢 ひとことで言うと

SSR=厨房で作って皿で出す。 サーバーがHTMLを組み立てて返すので初回表示が速く・SEOに強く・秘密もサーバー側で扱える——公開Webアプリ/EC/メディア向き。届いたあとに 💧 ハイドレーション(静的HTMLにJSをかぶせる)で“動く”化します。代わりにサーバーが要る(コスト・複雑さ)/ズレ問題/TTFB依存には注意。

➡️ 次へ

次のページ:SSG(静的サイト生成)— 作り置きで最速・最安 → ← 目次・はじめにへもどる