サーバーとは
ITの世界にはサーバーという言葉が頻繁に出てきますが、
サーバーという言葉をぼんやりとしかイメージできていない人も多いので、
ここではサーバーについて解説です。
ちなみに、日本語の場合は本やサイトによって「サーバー」と書く場合と「サーバ」と書く場合があります。
書いている人の好み(と気分)なので、どちらでもよいのですが、
ここではサーバーとします。英語ではServerと書きます。
※ユーザーの場合も「ユーザー」と書く場合と「ユーザ」と書く場合があります。
これもどちらでもいいですが、
最後を伸ばすか伸ばさないかは統一したほうが良いですね。
サーバーとは
サーバーとは、簡単に言えばサービスを提供するものを指します。
要求(リクエストと言います)を受けたら、
その内容に応じて応答(レスポンス)を返すものです。
レスポンスを返すのがサーバーなのに対して、
リクエストをするものを「クライアント」と呼びます。
クライアントが具体的に何を指すかは、
サーバーの種類によって変わります。
サーバーソフトウェア
サーバーと聞くと、物理的にでかくて高性能なコンピュータのことをイメージする人も多いと思いますが、
サーバーとは基本的にはソフトウェアのことを指します。
サーバーソフトウェアにも役割によって様々な種類がありますが、
代表的なサーバーソフトウェアは
- Webサーバー
- APサーバー(アプリケーションサーバー)
- DBサーバー(データベースサーバー)
- メールサーバー
等です。
Webサーバー
Webサーバーは、URLをリクエストとして受け取り、
そのURLに対するWebページを返す役割を持つサーバーです。
URLを受け取ると、それに合わせてHTMLファイルや画像ファイルなど、
対象となるWebページを構成するリソース(資源)をレスポンスとして返します。
Webサーバーの場合、Webブラウザがクライアントとなります。
代表的なWebサーバーの製品は
等があります。
APサーバー
APサーバー(アプリケーションサーバー)は、
プログラムを動かすためのサーバーです。
静的Webサイト(あらかじめ決められた情報を見るだけのWebサイト)を作成するのであれば、Webサーバーがあれば機能します。
しかし、ユーザーの情報を登録したり、
データを検索したりなどの機能を持ったWebアプリケーションを作成する場合は、
HTMLやCSSだけで作成することはできません。
プログラムを作成して、
リクエストによって動的にWebページを作成する機能が必要です。
リクエストに応じてプログラムを動作させたり、
動的にWebページを作成してくれる機能を持つサーバーがAPサーバーです。
Webサーバーとしての機能も兼ね備えているAPサーバーもあります。
代表的なAPサーバーは
等があります。
DBサーバー
DBサーバーは、データベースを扱うサーバーです。
SQLと呼ばれる、データベースを操作するための言語があるのですが、
SQLで操作したいことを記述してDBサーバーに送信すると、
見たいデータや、操作の結果などを返してくれます。
代表的なDBサーバーは
等があります。
メールサーバー
メールサーバーは、メールの送受信に関する機能を提供してくれるサーバーです。
クライアントはメーラーと呼ばれる、メールを扱うソフトウェアです。
例えば、OutLook, Thunderbard, G-mailなどがメーラーになります。
サーバー用のハードウェア
サーバーと聞くと、物理的に大きくて高性能なハードウェアをイメージすることも多いと思います。
しかし、ここまでで述べたように、サーバーとはソフトウェアのことを指すので、
普通に自宅で使っているPCでも、サーバーソフトウェアをインストールすればサーバーになり得ます。
プログラミングを学習する場合などは、
自分のPCにサーバーの環境を作って学習することも多いです。
ただし、実際にサービスを運用する場合、サーバーの環境を作るのには、
高性能なハードウェアを用います。
何故かというと、サーバーというのは、いつでも稼働している必要があるので、
基本的に電源を落とせません。
また、サーバーが停止してしまうと、
サービスの内容によっては大きな影響が出てしまう可能性があります。
そのため、物理的に障害が発生しにくい、
または発生しても何らかの対処ができる状況が必要です。
また、多くの人が利用するサービスの場合は、
それに耐え得る性能が必要です。
なので結果的にサーバーの環境となるハードウェアは物理的に優れたものを用意するのです。
まとめ
- サーバーとはクライアントに対して何らかのサービスを提供しているソフトウェア
- いろんな種類のソフトウェアがある
- サーバーの環境を作るハードウェアは、高性能なハードウェアを用いることが多い