web-dev-qa-db-ja.com

Webサーバーとアプリケーションサーバーの主な違いは何ですか?

私はWeb開発に不慣れで、物事を探り始めたばかりです。 WebサーバーがWebページを処理してクライアントに送信する方法について読みましたが、アプリケーションサーバーと混同されました。それらの違いは何ですか?なぜアプリか。サーバーが必要ですか?そして、それらの両方のいくつかの例。

5
akshaykumar6

Webサーバー定義

Webサーバーは[〜#〜] http [〜#〜]プロトコル形式のリクエストを特定してリクエストを処理するサービスです。サーバーは、HTTP形式を使用して行われた要求に応答し、次に有効なHTTP応答を使用して応答します。 Webサーバーからのすべての応答は、HTTPプロトコルのW3標準に従います。サーバー500のエラー、リダイレクト、およびさまざまなコンテンツタイプを含みますが、これらに限定されません。

Webサーバーは、非HTML形式をサポートするコンテンツタイプで応答する場合があります。 PDFファイル、バイナリファイル、さらにはJSON/XMLレスポンスなど。これらのリクエストがWebサーバーからのものであることを理解するための重要な要素は、レスポンスがHTTPレスポンスであることを理解することです。応答は、単にアプリケーション固有のコンテンツタイプです。

Webサーバーは、HTTP応答を提供するために複数のCGI言語を実行する場合があります。これらには、Python、PHP、JavaおよびASP(とりわけ))を含めることができます。これらの言語はWebサーバーで動作しますが、有効なHTTP応答を提供します。なぜなら、それはまだウェブサーバーだからです。

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

アプリケーションサーバーは、ビジネスオペレーションの要求を特定して処理し、ビジネスロジックを実行するサービスです。 [〜#〜] http [〜#〜]プロトコルに限定されませんが、ビジネス要件に適合する場合、そのプロトコルを使用して動作できます。

アプリケーションサーバーは、TCP/IP通信で動作する傾向があります。ソケット、およびその他のインターネット低レベル通信を含みます。 アプリケーションWebサーバーをホスティング環境として使用することが可能です。

アプリケーションサーバーを必要とするツールの例としては、ゲームサーバー、チャットサーバー、ビデオ会議サーバー、クラウドベースの会計アプリケーションなどがあります。

ほとんどの場合、アプリケーションサーバーはビジネスロジックをAPIレイヤーの下にラップします。そのAPIレイヤーは、クライアントがサポートする一般的なプロトコルを介して、またはカスタムソケット通信を介してアクセスできます。開発者向けにこれらすべてが組み込まれた複数の開発プラットフォームがあります。 J2EEや.NETなどのプラットフォームが含まれます

13
Reactgular

技術的には、同じことを意味します。ただし、口語的な使用では、「Webサーバー」は一般に、Webブラウザーを使用するユーザーが使用することを目的としたWebページを生成するサーバーを意味します。

一方、「アプリケーションサーバー」は、1つのプログラムが別のプログラムと通信するためのトランスポート層としてHTTPを使用します。通常、ドキュメントとしてレンダリングされることを意図していないJSONやXMLなどのデータ交換形式を使用します。

もちろん、同じサーバーがHTMLページと、基礎となるデータにプログラムでアクセスするためのAPIの両方を提供している場合、違いは少しあいまいになる可能性があります...

1
Mason Wheeler