概要
機能や情報(サービス)を提供するサーバと、それを利用するクライアントとを分離し、ネットワーク通信によって接続する、コンピュータネットワークのソフトウェアモデル(ソフトウェアアーキテクチャ)である。単にクライアント・サーバと呼ばれたり、C/Sなどと表記されたりすることも多い[1]。俗にクラサバと略されることもある。 (wikiより引用)
簡単に言えばシステム分類の一つ
前提知識
- サーバ
- クライアント
よくわからんので噛み砕いて説明してみる
クライアント
基本的にはサービスを受け取るコンピューターやソフトウェアのことを指す
サービスを受け取る対象が
- コンピューターの場合は
- クライアントコンピューター
- ソフトウェアの場合は
- クライアントソフトウェア
- インターネットを通じて情報を受信する場合は、受け取り側を
- Webクライアント
等々対象に応じてこんな感じで色々ある。
ユーザとやり取りをしてユーザの代理でサーバに問い合わせをする。
サーバ
クライアントに対してサービスや機能を提供するコンピューターを指す
そもそもサーバは「役割」としてのサーバと「機器」としてのサーバの二つの意味を持つ
ここを混同すると訳が分からないことになるのでまずここを解説
役割としてのサーバ
前述したがサーバは「サービスや機能を提供するコンピューター」です。
サービスや機能を提供しているコンピュータは、もれなくサーバです。
例えば「Webサーバ」は「Web関連のサービスを提供しているコンピュータ」です。
メールサーバは「メール関連のサービスを提供しているコンピュータ」です。
~~サーバの文字を見たら~~関連のサービスや機能を提供するものって思ってたらおkです。
機器としてのサーバ
そもそも「サーバ」という名前の機器は存在しません。
じゃあ機器としてのサーバってなにって話だが、
サーバはサービスや機能を提供する側のコンピュータっていう大前提がある
サーバは基本的に常に稼働していて、不特定多数の処理を同時に行う際に処理落ちしてはいけないし、スピードも早くないといけない。(前述したメールとかいい例。来ない時間あったり、時間めっちゃ遅れるとかやだよね)
すなわちサーバとしての責任を果たすためには良い性能が必要になる。
そこでサーバ用途で使うために性能の良いコンピュータ作った。
これを指して「サーバ」と表現している。
まとめると
(役割としての)サーバとして使うためのコンピュータが(機器としての)サーバ
という感じになります。
本題
クライアントサーバってなに?
前述した概要をもっと噛み砕いて表現すると
**分散システム(みんなで苦労しようぜシステム)**です。
分かりやすく考えるために
- ユーザからクライアントの処理
- クライアントからサーバの処理
の二つに分けてWebサーバの例で考えてみる。
クライアントは、パソコン・スマートフォンのこと。もっと具体的に言えば「ブラウザ」を表します。
このサイトを「ブラウザ」を通してみています。ページを見たり、画像を保存したり、Googleで検索をしたりします。つまり、「次のページを見たい」「画像を保存したい」「サイト内検索をしたい」という要求を「クライアント」へ送っていると言えます。
この要求をリクエストと呼ぶ。
ユーザからのリクエストを受け取った「クライアント」は、その要求をシステムの言葉に翻訳し、サーバ側へ送ります。
クライアントからのリクエストを受け取った「サーバ」は、該当するページを「クライアント」に返します。リクエストに応じて結果を返すことを、レスポンスと呼ぶ。
ここでのレスポンスは、具体的に「ページのコンテンツ」です。記事や画像などの情報をレスポンスとしてクライアントへ返却、その後クライアントは受け取った情報をスクリーンに表示する。
以上がクライアントサーバの概要です。
参考・引用