クライアントとサーバーの関係を簡単解説

まずは、これだけ

クライアントが「お願い」を送り、サーバーが「結果」を返す。
WebサイトやWebアプリの多くは、この往復で動いています。

パソコンから注文を送り、キッチンで用意した結果を受け取る様子
リクエスト:これをください レスポンス:用意できました

クライアントとサーバーは「注文する側」と「用意する側」

Webの仕組みをお店にたとえると、クライアントは注文するお客さん、サーバーは注文を受けて商品を用意するお店です。

ブラウザでページを開くとき、あなたの端末は「このページを見せてください」とサーバーへお願いします。サーバーは必要なHTMLや画像などを探し、結果を端末へ返します。

クライアント

ブラウザやスマホアプリなど、サービスを利用してお願いを送る側。

サーバー

お願いを受け取り、データを探したり計算したりして結果を作る側。

ネットワーク

クライアントとサーバーの間で、お願いと結果を届ける道。

「お願い」と「返事」には名前がある

クライアントからサーバーへのお願いをリクエスト、サーバーからクライアントへの返事をレスポンスと呼びます。

ページ表示だけでなく、ログイン、検索、フォーム送信、商品購入なども、基本的にはリクエストとレスポンスの組み合わせです。

サーバーが依頼を受け取り、データを探し、結果を送り返す流れ
サーバーの中では、受け取る・処理する・返すの順で仕事が進みます。
  1. 受け取る検索条件や入力内容を受け取る
  2. 処理するデータを検索・計算・保存する
  3. 返す画面やJSONデータを送り返す

返ってくるものは画面だけではない

サーバーは完成したHTMLを返すこともあれば、JavaScriptが利用するJSONデータだけを返すこともあります。API通信も、このリクエストとレスポンスの一種です。

なぜ2つに分けるの?

サーバーにデータと処理を集めておくと、パソコンやスマートフォンなど、複数のクライアントから同じサービスを利用できます。

たとえばネットショップの商品在庫をサーバーで一元管理すれば、どの端末から見ても同じ最新在庫を確認できます。重要な処理や秘密の情報を利用者の端末にすべて置かずに済む、という利点もあります。

パソコン、スマートフォン、タブレットが共通のサーバーへ接続する様子
端末が違っても、同じサーバーへつながれば共通の最新データを利用できます。

ここまでのまとめ

クライアントとサーバーは、役割を分担しながら通信しています。Web技術を学ぶときは「今の処理は、どちら側で行われているのか」を意識すると理解しやすくなります。

クライアント

利用者に近い側。画面表示や入力受付を担当する。

サーバー

データの保存・検索・計算などを行い、結果を返す。

通信

リクエストとレスポンスの往復でサービスが動く。

ブラウザで何か操作したら、「どんなリクエストが送られ、サーバーは何を返したのか」と考えてみる。それだけでWebの見え方が変わります。