初めに
「サーバ」という単語はよく聞くが、皆が同じ意味で使用しているように思えなかった。
このため、初学者が検索して学んだことまとめた。
サーバとは?
サーバ (server) は、広義としてサービスを提供するもののことを指す。
コンピューター(HardWare) に対してもプログラム (SoftWare) に対してでも同一単語が用いられることがある。
何をするのか
要求に対して、それに応じた返答を返す。
要求が「誰から」「どのようなもの」であるか、「返答」を「どのように」返すのかはものによって異なる。
広義で考えると漠然としていて「サーバ」が取り留めもないように思えるのも正しいと思える。
どんなものがあるのか
簡単に機能別と状態別に分類できる。
機能別
サーバはサービス(要求に対して返答する行為)がある。
サービスはその目的に応じて、様々な機能を有する。
代表的なものを以下に挙げた。
サーバ名 | 役割 |
---|---|
Webサーバ | オブジェクトの表示提供 |
APサーバ | アプリケーションの実行 |
DBサーバ | データの運用、管理 |
プロキシサーバ | 通信の中継 |
ファイルサーバ | ファイルの共有 |
メールサーバ | メールの配送 |
DNSサーバ | インターネット関係の何か |
FTPサーバ | ファイルの通信 |
SIPサーバ | IP電話システムの管理 |
サービスに応じて名称が異なるので、当然、非常に多くの名称がある。
状態別
サーバは広義としてその状態(環境)を指定しないので、物理的なものを指す場合とSW(機能)ブロックを指す場合がある。
サーバそのものの状態に応じて名称が分かれている。
・物理サーバ (HardWare)
・仮想サーバ (SoftWare)
物理サーバ
物理的に存在するコンピューターのことを指す。
物理的な筐体があり、クライアントPCと同様にCPUや、メモリ、ストレージ、電源などが組み込まれる。
PCと部品(名称)は概念として基本的に同じであるが、スペックや構成が異なる。
仮想サーバ
物理的に存在するコンピューター上に、サーバが動作可能な環境をプログラムで構築したもののことを指す。
まとめ
サーバには多数の種類がある。
「サーバ」という単語で会話する際は、実際に何を指しているのか注意する。
メモ:バックエンドのサーバで使用される言語は以下が代表的であるらしい。
言語 | 種類 |
---|---|
PHP | インタプリタ言語 |
Java | コンパイラ言語 |
Ruby | インタプリタ言語 |
Perl | コンパイラ言語 |
Python | インタプリタ言語 |
JavaScript (Node.js) | インタプリタ言語 |
自身の関連記事