はじめに
Webアプリケーションを扱う際によく「クライアント・サーバーモデル」という言葉を目にします。
実は私たちがWebページを閲覧する際には、このモデルに基づいてシステムが構築されており、システム開発においても重要な仕組みであり、概念です。
現代のコンピュータネットワークにおいて非常に重要な仕組みであるクライアント・サーバーモデルの基本を理解することを、本記事のゴールにします。
クライアント・サーバーモデルとは?
クライアント・サーバーモデルは、コンピュータネットワークにおいて広く使われている基本的な仕組みの一つです。このモデルでは、サービスを利用する「クライアント」とサービスを提供する「サーバー」、が明確に分かれています。
私たちが見たいWebページをGoogle ChromeやSafari、Arcなどのブラウザで見るためには、使用しているWebブラウザからデータが保存されているサーバーに問い合わせ、サーバー側で処理がされてからデータを受け取り、結果を画面に表示しています。
クライアントとサーバーの役割
登場人物は、①ユーザ ②クライアント ③サーバー の3体。
私たち①がPC上でGoogle Chromeのようなウェブブラウザ②を使用して、データを保存・生成してくれる③に問い合わせを行なっています。
① ユーザ
実際にクライアント(ブラウザ)を使用する人です。
私たちが直接サーバーに問い合わせるのではなく、クライアントを経由してデータを取得します。
② クライアント
サービスを利用する側のコンピュータやアプリケーションを指します。
例えば、ウェブブラウザ(Google ChromeやSafariなど)はクライアントの一種です。ユーザーがブラウザを使ってウェブサイトにアクセスするとき、ブラウザはサーバーにリクエストを送信し、サーバーからの応答を受け取ります。
③ サーバー
サービスを提供する側のコンピュータやアプリケーションを指します。
サーバーは、クライアントからのリクエストに応じてデータやサービスを提供します。
例えば、ウェブサーバーはクライアントからのリクエストに応じてウェブページのデータを送信します。
このように、リクエストとレスポンスという形式で、クライアントとサーバがコミュニケーションをとっています。
クライアント・サーバーモデルの仕組み
クライアント・サーバーモデルでは、以下のような流れで通信が行われます。
1. リクエスト
クライアントがサーバーに対して何らかの要求(リクエスト)を送信します。
例えば、ウェブブラウザが「このページを表示したいのでデータをください!」というリクエストをサーバーに送信します。
2. 処理
サーバーはクライアントからのリクエストを受け取り、必要な処理を行ないます。
例えば、ウェブサーバーはリクエストされたページのデータを準備します。
3. レスポンス
サーバーは処理結果をクライアントに返信(レスポンス)します。
例えば、ウェブサーバーはページのデータをブラウザに送信します。
4. 表示
クライアントはサーバーからのレスポンスを受け取り、結果を表示します。
例えば、ブラウザは受け取ったデータを元にウェブページを表示します。
身近なクライアント・サーバーモデルの例
ウェブブラウジング
ウェブブラウザ(クライアント)がウェブサーバーにリクエストを送信し、ウェブページのデータを受け取ります。
メール
メールクライアント(OutlookやGmailアプリなど)がメールサーバーにリクエストを送信し、メールの送受信を行ないます。
まとめ
私たちが検索した結果を使用しているPCやスマホなどの端末で見ることができるのは、使用している端末内のブラウザとサーバーがお互いにデータのやり取りをネットワーク(インターネット)を行なっているからです。
使用している端末でレスポンス結果を表示するために、データはさまざまなルートを辿る旅に出ます。ブラウザから目的地であるサーバーにどのようにデータが送られるのか、ネットワークやHTTPの仕組み、サーバー側で実際に行われている処理などを理解することで、より理解を深めることができます。
こうした仕組みについても、今後まとめていきたいと思います。
今回の記事が理解の一助になれば幸いです。
また、誤った情報を記載していた場合には、遠慮なく教えてください。ASAPで修正します。
最後までお読みいただき、ありがとうございました。
参考URL・画像引用元