サーバ(サーバー)とは、本来はソフトウェアまたはコンピュータ間の役割分担の片側の名称である。
クライアント側(ソフトウェアまたはコンピュータ)からの要求(リクエスト)を受けて、何らかのサービスを提供する側(ソフトウェアまたはコンピュータ)がサーバである。
何らかのサービスとは、ファイルサーバのように保管している情報を提供するもの、プリントサーバのようにプリンタへの印刷経路やスプール機能を提供するもの、インターネット販売のように在庫管理や配送手配や代金引き落としなど(提携している別会社を含め)他のシステムと連携するものなど、さまざまである。
古典的なメインフレーム(汎用機)やオフィスコンピュータに代表される集中処理では、処理の大半は中央の「ホスト」側で行われ、「端末」(ターミナル)側では最低限の画面制御(入力チェック、描画等)しか担当しなかった。
1990年代より、ワークステーションやパーソナルコンピュータの性能向上・低価格化に伴い、分散処理の一形態として、処理の多くを「クライアント」で行い、「サーバはクライアントからの要求を処理する(のみ)」という役割分担が広く普及した。クライアントサーバモデル全盛期には「集中処理は時代遅れであり、今後は全てクライアントサーバになる」との論調が多かったが、クライアント側の運用管理(バージョン管理、トラブル対応、容量管理、バックアップなど)の手間・コストの増大と、2000年代にはインターネットの普及による集中処理の再評価が発生した。
ソフトウェアおよびコンピュータとしてのサーバは、集中処理における各種サーバ機能側(クライアントはブラウザ程度)も兼ねて、今後も進化していくと思われる。
詳細はクライアントサーバモデルを参照
サーバ(情報提供者)とは、クライアント(情報利用者)と対で使用される名称である。
複数のコンピュータがネットワーク接続された環境、すなわちコンピュータネットワーク上で、各々のコンピュータが同じ内容の情報資源(データ)を参照したいことがある。このような場合、そのデータを各コンピュータにコピーしていては、記憶領域や保守などの面で多大な無駄が生じる。
クライアント・サーバ・モデルはこれを解決する手段で、特定のコンピュータ(サーバ)が情報やその処理作業を集中的に管理することで、ネットワーク全体での記憶領域を最小限にとどめると共に、共有される情報の同期等の手間を省き、情報伝達や保守の効率を高めるものである。他のコンピュータはクライアントとして稼動し、必要に応じてサーバからサービスを受けとる。
クライアント・サーバ・モデルは、コンピュータを単位としたものだけではなく、アプリケーションやプロセスを単位として捉えられることもある。
クライアント・サーバ・モデル/型/システム/コンピューティングなどとも言う。
ホスト・ターミナルシステムとクライアント・サーバシステムの違いについてはクライアントの項目を参照。
サーバには、クライアントに提供するサービスにより様々な種類があり、必要に応じてネットワーク上に複数のサーバを設置し組み合わせて使用する。例えばWebサービスとメールサービスのサーバアプリケーションを1台で同時に実行して、ウェブサーバとメールサーバを兼ねることもできるが、負荷や管理(ライセンス、セキュリティ、障害対策、起動停止運用)などの都合から1台ずつのサーバに分けて運用することもある。
また、同じサーバアプリケーションを複数台のサーバで実行しながら負荷を分散し、耐障害性を向上させることができる(スケールアウト)。
ウェブサーバなどで、アクセスが集中して負荷が増大することにより、処理が追いつかなくなって見かけ上サーバが機能を停止したようになる、いわゆる「飛ぶ」あるいは「クラッシュする」状態に陥ることがある。また「飛ぶ」まではいかなくても、極端に転送量が小さくなって、ウェブサイトのページを開くにもとても長い時間がかかることがある。
オンラインゲームなどでは膨大な量のデータやユーザーによるトラフィックのため、常にサーバはクラッシュの危機にさらされている。さらにイベント時期やパッチファイル配布のタイミングには天文学的な量のデータの転送があるため、特にクラッシュしやすい。このような事例を避けるため、有名なオンラインゲームでは多数のサーバを共通のソフトウエア構成にして運用し、1台当たりにかかる負荷を分散している。
現在の一般的なパソコン用OS(Windows XPやMacintoshなど)では、上記サーバ機能をOSの機能の一つとして持っているため、サーバ的な利用を行なうことが出来る。
サーバ用途として提供されているソフトウェアでは、個人が利用するソフトウェアと比べ下記のような特徴がある。
アカウントコントロール - 利用者と利用者ごとの権限の設定を行なうことが出来る。
同時アクセス - 単一の情報に対して、複数のユーザーが同時にアクセスすることを前提としている。
セキュリティー - 多数のユーザーに解放されるため、クライアント向け製品と比べ強固である。
安定性 - 電源を切ることなく連続で動き続けるために、安定度が高い。
主に開発元からサーバ用として発売・配布されているOSには下記のようなものがある
メインフレーム専用OS
z/OS
MSP/XSP
VOS3
ACOS
OS1100/MCP
UNIX
HP-UX
Solaris
AIX
Mac OS X Server、他
Linux
Red Hat Enterprise Linux、他
Windows
Windows Server、他
主に開発元からサーバ機能を提供するとして販売・配布されているソフトウェアには下記のようなものがある
データベースサーバ:データベース処理
トランザクションサーバ:トランザクション処理
アプリケーションサーバ:アプリケーション処理(特にJavaアプリケーションサーバ)
Webサーバ(HTTPサーバ):Webアプリケーション処理(Apacheなど)