サーバーソフトについて調べてみた
サーバー(server)とは、一般的にホームページを表示するために必要となる情報を格納しておく場所のことを指します。
「サーバ」はWebサーバやメールサーバといったソフトウェアの入った「パソコン」であり、Webサーバやメールサーバといったソフトウェアを入れることで、それらの機能を実行することが可能となります。
ただし、サーバという呼び方をするものには、ソフトウェアを格納する倉庫である「ハード」をあらわすものと、Webサーバなどの「ソフトウェア」をあらわすもの、2種類があります。
今回は、その2つのうちの「ソフトウェア」を表す「サーバーソフト」の種類について調べてみました
Webサーバー
WEBサーバーとは、ブラウザの要求に応じてホームページのデータをブラウザに送るサーバーのことを言います。Webサーバーは、HTML文書や画像などのデータをブラウザーへ送り、ブラウザーがHTMLを解釈してホームページデータを表示します。
さらに言うと、このブラウザとWebサーバーのやり取りは、HTTPという決まりごとの上で動いており、この決まりを処理できるプログラムがWebサーバーと言われています。
HTTPは、 「Hyper Text Transfer Protocol」の略です。 今やインターネットの代名詞となったWWW(World Wide Web)上でWebサーバとクライアントが、 HTML(Hyper Text Markup Language = Webページを記述するための言語)で書かれた文書などの情報をやりとりする時に使われる通信手順(プロトコル)がHTMLです。
DNSサーバー
DNS とは、ドメインネームシステム (Domain Name System) の略で、IPアドレスの変換などを提供するシステムです。
インターネットに接続している機器には「IPアドレス」という固有の番号が必ず割り当てられます。IPアドレスである番号はネット上の住所のような役割を果たします。
そして、インターネット上におけるすべての通信は、相手先のIPアドレスが指定されることにより行われます。
しかし、IPアドレスは数字の羅列であり人では覚えづらい為、文字列であるドメインがURLとして人の目に入るようになっています。
※ドメインとは、「https://www.rachicom.net」でいう「rachicom.net」にあたる部分です。
そこで登場するのかDNSサーバーです。
DNSとは、より人間が覚えやすく使いやすい「名前」で指定できるようにするためのしくみを実現するシステムです。DNSサーバーがドメインとIPアドレスを結びつけ、文字列でのURL管理を可能にしているのです。
ファイルサーバー
ファイルサーバーとは、ネットワークにつながっていて、ファイルを保存している場所を指します。
GoogleDriveのようなサービスもファイルサーバーと言えます。
メールサーバー
メールは送信・受信それぞれ別々のサーバーソフトによって運用されています。その為、メールの送信や受信のシステムを運用するためには、複数の役割をもったサーバーが連携することが必要です。
具体的にはメールの送信や配送を行うSMTP(Simple Mail Transfer Protocol)サーバー、ユーザーがメールを受信するための機能を提供するPOP3(Post Office Protocol)サーバーがあり、この2つをあわせてメールサーバーと呼びます。
さらに、メールを送信する際にメールのドメイン名をIPアドレスに変換する必要がある為、DNSサーバーも関わってきます。
FTPサーバー
FTPは、File Transfer Protocolの頭文字をとったもので、日本語では「ファイル転送プロトコル」と訳されます。ネットワーク上でファイルの転送を行うための通信プロトコル(通信するときの決まりごと)の1つです。
FTPサーバーとは、このFTPというプロトコル(ルール)でファイルの送受信を行うサーバーソフトウェアのことを指します。
つまり、サーバー上にファイルをアップロードしたり、サーバー上からファイルをダウンロードする際にFTPというプロトコルを使用して通信してくれるソフトウェアが、FTPサーバーになります。
アプリケーションサーバー
Webサーバーは、Webブラウザのリクエストに対して、静的な処理のみであればデータだけ(HTML、CSS、JavaScript、画像など)を返します。対して、動的な処理が必要な場合には、アプリケーションサーバーへリクエストを送り、アプリケーションサーバーから受け取った結果をWebブラウザに返します。
アプリケーションサーバーはWebサーバから受け取ったリクエストをもとに、Javaやphp、Rubyなどを実行し、Webサーバに結果を返します。
つまり、アプリケーションサーバーとは、バックエンドで動作するJavaやphp、Rubyなどを実行したり、データベースへのアクセスを行ない、処理を行なうソフトウェアの事を指します。