クライアントが「お願い」を送り、サーバーが「結果」を返す。
WebサイトやWebアプリの多くは、この往復で動いています。
クライアントとサーバーは「注文する側」と「用意する側」
Webの仕組みをお店にたとえると、クライアントは注文するお客さん、サーバーは注文を受けて商品を用意するお店です。
ブラウザでページを開くとき、あなたの端末は「このページを見せてください」とサーバーへお願いします。サーバーは必要なHTMLや画像などを探し、結果を端末へ返します。
ブラウザやスマホアプリなど、サービスを利用してお願いを送る側。
お願いを受け取り、データを探したり計算したりして結果を作る側。
クライアントとサーバーの間で、お願いと結果を届ける道。
「お願い」と「返事」には名前がある
クライアントからサーバーへのお願いをリクエスト、サーバーからクライアントへの返事をレスポンスと呼びます。
ページ表示だけでなく、ログイン、検索、フォーム送信、商品購入なども、基本的にはリクエストとレスポンスの組み合わせです。
- 受け取る検索条件や入力内容を受け取る
- 処理するデータを検索・計算・保存する
- 返す画面やJSONデータを送り返す
返ってくるものは画面だけではない
サーバーは完成したHTMLを返すこともあれば、JavaScriptが利用するJSONデータだけを返すこともあります。API通信も、このリクエストとレスポンスの一種です。
なぜ2つに分けるの?
サーバーにデータと処理を集めておくと、パソコンやスマートフォンなど、複数のクライアントから同じサービスを利用できます。
たとえばネットショップの商品在庫をサーバーで一元管理すれば、どの端末から見ても同じ最新在庫を確認できます。重要な処理や秘密の情報を利用者の端末にすべて置かずに済む、という利点もあります。
ここまでのまとめ
クライアントとサーバーは、役割を分担しながら通信しています。Web技術を学ぶときは「今の処理は、どちら側で行われているのか」を意識すると理解しやすくなります。
利用者に近い側。画面表示や入力受付を担当する。
データの保存・検索・計算などを行い、結果を返す。
リクエストとレスポンスの往復でサービスが動く。
ブラウザで何か操作したら、「どんなリクエストが送られ、サーバーは何を返したのか」と考えてみる。それだけでWebの見え方が変わります。