3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CSR, SSR, SSGをレストランで理解する

Posted at

はじめに

 今回、研修でReact×Laravelを用いてECサイトを構築しているのですが、そこでCSR, SSRという用語が出てきており、良い感じに例え話ができたため、備忘録として残しておきます。

例え話のため、単語と対応してない部分があるかもしれないので、流れを理解するために活用していただけると幸いです。

覚えておく用語たち

 以下の用語はこれからの物語を理解するために必要なため、わからない方は事前に学習しておくと理解が捗ると思います。

  • Bladeテンプレートエンジン
  • APIエンドポイント

SSR (Server Side Rendering)

1. お客様(ユーザー)がレストラン(ブラウザ)に来店して料理を注文(リクエスト)する
2. 料理人(サーバー)が注文(リクエスト)を受け取る
3. 料理人(サーバー)は必要な材料(データ)を棚(データベース)から取得する
4. 取得した材料(データ)をBlade料理人(Bladeテンプレートエンジン)に渡す
5. Blade料理人(Bladeテンプレートエンジン)が、料理(データ)をレシピ(Bladeテンプレー トの記述)通りに調理(組み合わせて)して完成させる(最終的なHTML文字列を生成)
6. 料理人(サーバー)は、この完成した料理(HTML文字列)をお客様(ブラウザ)へ渡す
7. お客様(ブラウザ)は、出された料理をそのまま食べる(画面に表示する)。フン!!

CSR(Client Side Rendering)

1. お客様(ユーザー)がレストラン(ブラウザ)に来店して料理を注文(リクエスト)する
2. 料理人(サーバー)が注文(リクエスト)を受け取る
3. 料理人(サーバー)はレシピ(JavaScriptファイル群)と材料リストだけが書かれたメモ(ごくシンプルなHTMLファイル)をお客様(ブラウザ)に渡す

この時点では、お客様(ブラウザ)のテーブルにはほとんど何もありません

4. お客様(ブラウザ)は受け取ったマニュアル(JavaScript)を読み始め、メモ(シンプルなHTML)を確認する。
5. 同時に、マニュアルの指示に従って材料の調達部門(APIエンドポイント)に材料(データ)の注文を出す。
6. 材料の調達部門(APIエンドポイント)から、注文した材料(JSON形式のデータ)がお客様(ブラウザ)の元に届く。
7. お客様(ブラウザ)は、作り方マニュアル(JavaScript)と手元に届いた材料(データ)を使って、自分のテーブルの上で実際に料理(HTML要素)を組み立てて完成させる(画面に表示する)。

SSG (Static Site Generation)

1. 料理人(サーバー)が開店前(デプロイ時やコンテンツ更新時)に作り置きした料理(HTML)を棚(CDN/サーバー)に置いておく(麻婆豆腐、回鍋肉、小籠包など)

2. お客様がレストラン(ブラウザ)に来店して注文(リクエスト)する

この時点で、お客様は事前に作られた料理しか選べません。

3. お客様が注文(リクエスト)すると、料理人(サーバー)は棚(CDN/サーバー)に置いてある完成した料理(HTML)を提供する

まとめ

これまでの各レストランの特徴は以下の通りです。

SSR (Server Side Rendering)
  • お客様が注文してから、料理人は料理を作り始め完成したら提供する!
CSR(Client Side Rendering)
  • お客様が注文したら、料理人はレシピと材料リストだけが書かれたメモを渡して、実際に料理するのはお客様!
SSG (Static Site Generation)
  • 開店前に全部作り置き!注文来たらそのまま料理をお客様に出すだけ!

最後に

普通のレストランはSSR形式のところが多いですが、CSR形式のようなレストランがあると楽しそうですね!

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?