クライアントとサーバーの違いについてざっくり解説します

クライアントとサーバーという言葉は、IT関連に詳しくない人でも何気なく使っていると思います。
僕もそうです。
ですがあらためてどんな意味なのかと聞かれると、うまく答えることができません。

そこでクライアントとサーバーの違いについて調べてみたので、ざっくり解説します。

サーバーとクライアントの関係

コンピューター業界でサーバーというと、中央で何かを取りまとめている大御所のイメージがあります。

一般的なサーバーのイメージ

クライアントは、サーバーから指示を受けて働く下っ端ですね。

一般的なクライアントのイメージ

本来の言葉の意味は異なります。

サーバー(server)

サービスまたは商品を提供する人または物。

クライアント(client)

お客。サービスを受ける人または物。

コンピューター業界でも、こちらのイメージが本来のもので、サーバーは基本的にクライアントからアクセスされるのを待っているだけです。

サーバーとクライアントの関係

そしてクライアントというお客様から何らかの要望を受けて、作業をおこなうのがサーバーのお仕事です。

サーバーの種類

次にサーバーについて少し具体的に紹介します。

サーバーは『物理的なコンピューター機器』と『サーバーソフトウェア』の2種類にわけることができます。

物理的なコンピューター機器

物理的なコンピューター機器

サーバーとして使用することを目的としたコンピュータ機器を、サーバーと呼ぶことがあります。

サーバーとして使用されることを前提としたコンピューターが販売されていますが、サーバーとしてではなく個人的なパソコンとして使用できます。
この場合は、サーバーではありません。とても高価なパソコンです。

逆に数万円のパソコンをサーバーとして使用するなら、それは立派なサーバーコンピューターと呼ぶことができます。

つまりサーバーと呼ばれる機器は処理性能ではなくて実際の運用方法がサーバーということなのです。

※高価なサーバー用コンピューターでも、サーバーとして使用しなければサーバーではない。

サーバーソフトウェア

サーバソフトウェアは、クライアントからの問い合わせを受けて何らかの処理をおこない、その結果を返送するプログラムです。
問い合わせは、実際にはクライアントソフトウェアというプログラムがおこなっています。

サーバーとクライアントの関係は、これらのプログラムが情報のやり取りをおこなっていることで成り立っています。

サーバーとクライアントの位置づけ

サーバーやクライアントと聞くと、それぞれコンピューター機器を思い浮かべると思います。

サーバーマシンとクライアントマシンのやり取り

このイメージで間違いありません。

しかしこれだけでは不十分です。
サーバー・クライアントそれぞれのマシン上でも、ソフトウェアが動作していてやりとりをおこなっています。

サーバー・クライアント上でもやり取り

また、サーバーソフトウェアが、他のサーバーソフトウェアに問い合わせをおこなうこともあります。

この場合は、呼び出し元のソフトウェアが、クライアントという位置づけになります。

サーバー・クライアント

このように、サーバーとクライアントは複雑に絡み合っているのです。

サーバーソフトウェアの一例

Webサーバー

WebサーバーはパソコンやスマホのブラウザからURLを受け取って、Webページを表示するために必要な情報を送り返します。

Webサーバーと対になるWebクライアントが、ブラウザということになります。

Webサーバーとレスポンス

Webサーバーのソフトウェアで代表的なものが『Apache(アパッチ)』です。
サーバーのカスタマイズ方法をインターネットで検索すると『.htaccessファイル』を変更する方法がヒットしますが、このファイルはApache特有のものです。

他のメジャーなWebサーバーに『Nginx(エンジンエックス)』があり、Apacheよりも高速だと言われていますが、『.htaccessファイル』が扱えないためネット情報が役に立たず、初心者向きではありません。

その後開発された『LiteSpeed』は、ApacheとNginxよりも高速で、なおかつ.htaccessファイルを取り扱うことができるため、レンタルサーバーの新規参入の際に採用されるケースが増えることが予想されます。

LiteSpeed 速度

現状ではMixHostで採用されていて、僕も他のサーバーから引っ越しをしました。
(すみません、宣伝です)

レンタルサーバーを探している方は、ぜひ参考にしてください。
(すみません、宣伝です)

アプリケーションサーバー

アプリケーションサーバーは、WebサーバーにWebデータを渡すお仕事をしています。

Webサーバーは、htmlや画像などの静的なデータをブラウザに返信するのがお仕事で、動的なデータ生成を行いません。
同じページでもブラウザの要求に応じて内容を変更するなどの動的なページ生成は、アプリケーションサーバーのお仕事です。

Webページの構築に欠かせないのがWordPressというCMS(コンテンツ管理システム)です。
WordPressはアクセスされるたびに内部でWebページを作成します。
(厳密にはキャッシュ機能が働き、ムダなページ生成を防いでいます)

ではWordPressがアプリケーションサーバーかというと、そうではないようです。

WordPressはPHPというプログラミング言語で作成されていますが、このPHPという言語を読み込んで、サーバー上で動作させるプログラムが存在します。
このプログラムが、アプリケーションサーバーです。

アプリケーションサーバー php

なおApacheはPHPのアプリケーションサーバーが統合されているため、あまり意識をしないでPHPを使用することができます。

プリンターサーバー

プリンターサーバーは、印刷待ちのデータを一時的に保管して、順番にプリンターへと送り出す役割を持っています。

以前のプリンタは、パソコンから印刷データを受け取って、そのまま印刷をしていました。
印刷待ちのデータは、パソコン上のプリンタサーバーが管理していました。
もし複数のパソコンでプリンターを共有したいなら、別途プリントサーバーという機器を用意する必要がありました。

現在はプリンタ内にプリンターサーバーを内蔵しているものがほとんど。
しかも勝手にローカルネットワークに接続されるので、とても楽になったものです。

メールサーバー

メールサーバーは送信メールサーバー(SMTPサーバー)と受信サーバー(POP3サーバー・IMAPサーバー)の二つのサーバーをまとめて表現したものです。

パソコンやスマホなどのメールソフトが、クライアントとなります。

送信メール(SMTP)サーバー

SMTP(シンプル・メール・トランスファー・プロトコル)サーバーは、メールの送信をおこなうサーバーです。

クライアントからメールを受け取った後、DNSサーバーに送り先を問い合わせ、相手先に送信します。

受け取ったメールを保管しておくのも、メールサーバーの仕事です。

受信メール(POP3・IMAP)サーバー

メールサーバー上に保管されているメールを、クライアントのメールソフトで閲覧できるようにデータを送り込むのが、受信メールサーバーのお仕事です。

POP3がパソコン上にデータを残す方式で、パソコン上でメールの管理をおこないたい人に向いています。

IMAPはサーバー上でメールを管理する方式で、複数のパソコンから同じ状態のメールを閲覧することができます。

DNSサーバー

DNSサーバーは別名ネームサーバーと呼ばれ、ドメイン名の名前解決をおこなうために設置されます。

DNSサーバーについては、こちらでざっくり解説していますので、興味がある方がチェックしてみてください。