初級者~中級者向け 知識

【基本】よくサーバーとクライアントというけど、一体何のこと?

Webの知識
この記事は約6分で読めます。

文中の説明画像をクリックすると拡大します。

Pocket

サーバーとクライアントって一体何なの?

サーバー」と「クライアント」という2つの言葉を聞いたことがある人は、いることでしょう。しかし、正しい意味を理解している人は少ないかもしれません。

サーバーとは「サービスを提供するもの」であり、クライアントとは「サービスを受けるもの」です。

お店に例えると、わかりやすいかもしれません。例えばレストランに行って、好きなメニューを注文するとしましょう。この時、メニューを注文するお客さんが「クライアント」であり、料理を出す側が「サーバー」と言うことができます。

サーバーが提供するサービスには様々なものがあり、一般的に私たちは、クライアントとしてサーバーが提供するサービスを受けています。

サーバーとクライアントの処理の流れ

先ほどの例でいうと、クライアントは、サーバーに対して「メニューを注文」することでサービスの提供を受けることができます。

この「メニューを注文」することは、ITの世界では「リクエストする」と言います。

リクエストを受け取ったサーバーは、リクエストを分析・処理します。この「分析・処理」の工程は、注文があった「料理を作る」工程です。

そして、サーバーはクライアントに対して「料理を出します」。

この「料理を出す」ことを、ITの世界では「レスポンス」と言います。

ここまでの工程をまとめると、以下のようになります。

  1. 【クライアント】リクエストを送る(料理を注文する)
  2. 【サーバー】リクエストの分析と処理をする(料理を作る)
  3. 【サーバー】レスポンスを送信する(料理をお客さんに提供する)
  4. 【クライアント】レスポンスを受信する(出来上がった料理を受け取る)

この流れが、サーバーとクライアントの処理の流れです。

クライアントって具体的には何?

クライアントにはどのようなものが該当するのか、具体的に見ていきます。

Windowsはクライアントか?

Windowsは、通常クライアントとして動作します。

皆さんがインターネットを見るときに使う「ブラウザ」や、電子メールをやり取りする「メールソフト」はクライアントの代表例です。「サービスを受けるもの」です。

それぞれのクライアントに対するサーバーは、例えば以下のようなものです。

  • クライアントであるWindowsのサーバー→DNSサーバー(後述)
  • クライアントであるブラウザのサーバー→WWWサーバー
  • クライアントであるメールソフトのサーバー→POPサーバーやSMTPサーバー(後述)

しかし、Windowsをサーバーとして動作させることも可能です。

サーバーとは「サービスを提供するもの」の事でした。つまりWindows上でもサービスを提供する専門のソフトウェアが動作している場合は、Windowsをサーバーとして使うことができます。

例えば、Windowsで動作する「xampp」というソフトウェアがあります。これはインストールしたパソコンにWebサイトを公開するためのサーバーのソフトウェアや、データベースとして動作するサーバーのソフトウェアなどを導入するものです。

Windowsにこのようなサーバーのソフトウェアをインストールすることで、Webサービスやアプリケーションの開発に必要な環境を導入できるのです。

Macはクライアントか?

Macも、Windowsと同様に、一般的にはクライアントとして動作しますが、専用のソフトウェアを導入することで、サーバーとしても動作します。

Macには、Windowsで動作する「xampp」と似たソフトである「mamp」というサーバーソフトウェアがあります。

mampはxamppと同じく、Webサイトを公開するためのサーバーのソフトウェアや、データベースとして動作するサーバーのソフトウェアを導入できるソフトウェアです。

Macは、Webサービスやアプリケーション開発と相性が良く、多くの開発者がMacを好んで使っています。

スマートフォンはクライアントか?

iPhoneやAndroidのようなスマートフォンは、Webサイトの閲覧やメールの送受信、そしてSNSアプリの動作環境など、クライアントとして使うことがほとんどです。

一部のスマートフォンアプリには、スマートフォンをサーバーと動作させるものもあるようですが、このようなアプリケーションを使う場面は、ほとんどありません。

タブレットはクライアントか?

iPadのようなタブレットも、スマートフォンと同じく、クライアントとしてのみ動作させることが一般的です。

サーバーって具体的には何?

次は、サーバーについて見ていきましょう。

インターネットで利用できるサービスとして、Webサイトの公開や、メールの送受信などがあります。

サーバーはこれらのサービスごとに、専用のソフトウェアを動作させて、サービスを提供しています。

役割別に、どのようなサーバーがあるのか紹介します。

Webサーバー

Webサーバーは、Webサイトをインターネット上に公開するために動いているサーバーです。

代表的なものは、Apache(アパッチ)というソフトウェアです。

そして、最近注目を集めているのが、Nginx(エンジンエックス)です。どちらもオープソースで公開されており、無料で使えます。

メールサーバー

パソコンやスマートフォンで使っている電子メールについても、専用のサーバーソフトウェアがあります。

代表的なものは、sendmailやqmailです。

電子メールは、「送信」と「受信」で異なるサーバーを使うことが一般的です。「送信」に使われるサーバーはSMTPサーバー、「受信」に使われるサーバーはPOPサーバー、あるいはIMAPサーバーが使われます。

データベースサーバー

データベースサーバーは、WordPressのようなCMS(コンテンツマネジメントシステム)などで使われることで有名になりました。

代表的なものは、MySQLやPostgreSQLなどです。

商用のデータベースサーバーとしては、Oracle Database(オラクルデータベース)もあります。

DNSサーバー

DNSとは、聞きなれない言葉かもしれません。

Domain Name Systemの略語であり、インターネットを利用する時にはなくてはならないサーバーの一つです。代表的なものはBINDです。

DNSの役割を詳しく説明すると、膨大な量のコンテンツになってしまうので、ここでは簡単に1つの主要な機能について説明します。

それは「IPアドレスとホスト名の相互変換(名前解決)」です。

例えば、Yahoo! JapanのWebサイトのURLは「https://www.yahoo.co.jp/」ですが、この「www.yahoo.co.jp」の部分が広い意味でドメインとよばれています。

しかし本来、インターネット上のコンピュターは、ドメインではなくIPアドレスで管理されています。ドメインとIPアドレスの対応関係を管理するのが、DNSサーバーの主要な機能です。

ドメインからIPアドレスを求めることを「正引き」、IPアドレスからドメインを求めることを「逆引き」と言います。

「正引き」や「逆引き」は、以下で紹介するサイトで簡単にできます。

ドメイン/IPアドレス サーチ 【whois情報検索】

そもそもドメインって何だっけ?という方はこちらをご覧ください。

【基本】ドメインって何?
ドメインとは、インターネットにおけるコンピューターやネットワークの識別名で、Webサイトの住所のようなものです。本来、IPアドレスという「数字の住所」が割り振られていますが、数字の列挙は人間にはわかりづらいため、ドメインを使った文字列のホスト名が使われています。

サーバーとドメインの関係って、どうなっているんだっけ?という方はこちらをご覧ください。

【基本】サーバーとドメインの関係って、どうなっているの?
サーバーとドメインの関係は、よくインターネット上の土地(サーバー)と住所(ドメイン)に例えられます。独自のWebサイトを公開するには、サーバーと独自ドメイン(オリジナルドメイン)の契約をすることが望ましいです。

 

まとめ

  • サーバーはサービスを提供するものであり、クライアントをサービスの提供を受けるもの。
  • クライアントとサーバーは、「リクエスト」と「レスポンス」をやり取りしている。
  • WindowsやMacは、クライアントとしてもサーバーとしても動作できる。
  • サーバーは、提供するサービスの種類によって様々なものがある。
Pocket