これはしばしば混乱を招きます。
まず、「サーバー」は、物理的なもの (コンピューター) または論理的なもの (ソフトウェアの一部) を指す場合があります。
Web、アプリケーション、およびデータベース サーバー ソフトウェアはすべて、同じ物理サーバー マシン上で実行することも、複数の物理マシンに分散させることもできます。ほとんどの大規模な Web サイトには複数のマシンがあります。ほとんどの「コンシューマ」ホスティング パッケージは、単一のボックスで実行されます。
論理的な分離は次のとおりです。
Web サーバーは HTTP(S) リクエストを処理し、これらのリクエストを「ハンドラ」に渡します。それらには、ファイル要求 (HTML ページ、画像、CSS、JavaScript など) 用の組み込みハンドラーがあります。アプリケーション サーバーによって配信される動的ページなど、管理できない要求用のハンドラーを追加できます。Web サーバーは HTTP 仕様を実装しており、要求と応答のヘッダーを管理する方法を知っています。
アプリケーション サーバーは、動的ページを作成する要求を処理します。そのため、ハード ドライブに保存されている HTML ページを提供する代わりに、エンド ユーザーに送信される HTML を動的に生成します。このための一般的な言語/フレームワークは、Java/JSP、.Net (aspx)、PHP、Ruby (on Rails またはそれ以外)、Python などです。ほとんどの場合、このアプリケーション サーバー ソフトウェアは Web と同じ物理サーバー マシン上で実行されます。サーバ。
データベース サーバー ソフトウェアは、アプリケーションが構造化された情報を格納する場所です。通常、これは、アプリケーション サーバーがプログラミング言語を使用して「ユーザー x のバスケットにはいくつのアイテムがありますか?」などの質問をすることを可能にするカスタム ソフトウェアを意味します。例としては、MySQL、SQL Server、Oracle (すべて「リレーショナル データベース」)、MongoDB、Redis、および CouchDB (「NoSQL」ソリューション) があります。
データベース ソフトウェアは、Web サーバーと同じ物理マシンで実行できますが、通常、サイトを拡張する必要がある場合、別の物理ハードウェアで最初にホストされるのはデータベース ソフトウェアです。