QA Dojo
ハンズオン
進捗 0/47

クライアントとサーバーの役割分担

スライド 3 of 4

なぜ「ブラウザ」と「サーバー」を分けるのでしょう? ブラウザだけで全部やってしまえば良さそうにも見えます。

分ける理由は大きく 3 つ

  • データの一元管理:複数ユーザーが同じデータ(商品在庫・残高など)を見るとき、サーバーに集約しておかないと整合が取れない
  • セキュリティ:ブラウザはユーザーが自由に書き換えられる。価格や在庫数のような重要データを置いたら改ざんし放題になる
  • 処理の重さ・複雑さ:DB アクセスや認証など、ブラウザ側でやるには重い・難しい処理をサーバーに寄せる

役割分担のイメージ:

ブラウザ(クライアント)

  • 画面を描画する
  • 入力フォームの見た目
  • ボタンが押されたら送信
  • 受け取った結果を表示

サーバー(バックエンド)

  • 価格・在庫を判定する
  • 注文確定の処理
  • 認証・権限チェック
  • DB との読み書き

📌 QA 視点:「価格表示は正しいのに、注文確定すると違う金額で確定する」ようなバグは、「画面に出た値」と「サーバーが実際に使った値」が別物だから起きます。 QA はこの境界を意識して、「どっちの値で何が決まっているか」を確認できるようになる必要があります。

文中の空欄を埋めてください(「クライアント」または「サーバー」)

EC サイトで、ユーザーが見ている価格と、注文確定時に使われる価格が違うバグが起きました。 価格を最終的に決めるのは 側です。 一方、表示されている金額を変えているのは 側です。