サーバサイドとは
サーバサイドとは、
コンピュータネットワークにおけるクライアント-サーバモデルにおいて、サーバ側で行われる操作や処理を指します。クライアントからの要求に応じてデータを提供したり、複雑な計算処理を実行したり、
データベースを操作したりと、様々な役割を担っています。
一般的な概念
サーバは、
ユーザーが利用するパソコンや
スマートフォンなどのクライアントデバイスからアクセス可能な、リモートの
コンピュータ上で稼働するアプリケーションです。ウェブサーバなどがその代表例です。サーバサイドでの操作は、クライアント側では利用できない情報や機能へのアクセスが必要な場合や、クライアント側での処理が非効率、不安定、または安全でない場合に、その役割を担います。
クライアントとサーバ間の通信には、HTTPなどの標準化されたプロトコルが用いられます。これにより、Webブラウザなどの汎用的なソフトウェアを介して、データや情報をやり取りできます。また、開発者は、独自のサーバ、クライアント、
通信プロトコルを実装することも可能です。
サーバサイドの操作は、クライアントからのリクエストに応じた動的な処理と、サーバ自身のメンテナンスなどクライアントに依存しない処理の2種類に大きく分けられます。
セキュリティの観点では、サーバサイドの脆弱性や攻撃は、クライアント側ではなくサーバのシステム上で発生します。また、中間者攻撃も含まれます。例えば、SQLインジェクション攻撃は、Webアプリケーションの脆弱性を悪用し、サーバの
データベース内のデータを改ざんしたり、不正アクセスを取得したりする可能性があります。また、OSの脆弱性を突いてサーバシステムに侵入し、管理者権限を奪取することも可能です。
サーバサイドのセキュリティ対策は、システムの安全性を確保する上で非常に重要です。脆弱性診断や侵入検知システムなどの対策を講じる必要があります。
具体例
分散コンピューティングプロジェクトの例として、SETI@homeやGIMPSがあります。これらのプロジェクトでは、クライアント側でデータの処理を行うのが主な役割ですが、サーバはクライアントの調整、分析するデータの配信、結果の収集・保存、プロジェクト管理者への報告などを行います。
Google Earthのようなインターネットを利用するアプリケーションの場合、地図データの照会や表示はクライアント側で行われますが、サーバは地図データの永続的な保存や、
ユーザーの問い合わせを地図データに変換してクライアントに返す役割を担っています。
サーバサイド技術
Web開発では、様々なサーバサイド技術が活用されています。代表的な言語としては、以下のようなものがあります。
C#
ASP.NET環境の
Visual Basic
Java
Perl
PHP
Python
Ruby
Node.js
Swift
これらの言語を用いて、WebアプリケーションやWebサービスが開発されます。Webアプリケーションやサービスは、標準ベースのWebブラウザで表示可能な形式でデータを返せる限り、ほぼすべての言語で実装可能です。
参照項目
クライアントサイド
サーバサイドスクリプト
Server Side Includes (SSI)