私はいつもウェブサーバーとアプリケーションサーバーで混乱します。誰かがこれら2つの正確な違いを教えてもらえますか?
6 に答える
実際には、ほとんど違いはなく、ほとんどの人はこの用語を同じ意味で使用します。
私との微妙な違いは次のとおりです。
Webサーバーは、Webページと静的コンテンツを提供します。動的コンテンツではありません。
アプリケーションサーバーは(動的コンテンツを含む)Webサーバーにすることができますが、まったくそうではない場合もあります。プログラマー向けのAPIを提供します。
いつものように、ウィキペディアは最高の定義を持っています。
インターネット経由でアクセスできるコンテンツの配信を支援するコンピューターアプリケーション。
アプリケーションサーバーは、アプリケーションの構築をサポートするためのプロシージャ(プログラム、ルーチン、スクリプト)の効率的な実行専用のソフトウェアフレームワークです。
..。
アプリケーションサーバーは、プラットフォーム自体によって定義されたAPIを介してソフトウェア開発者がアクセスできるコンポーネントのセットとして機能します。
アプリケーションサーバーは、任意のアプリケーションレベルのプロトコル上の任意のサーバーです。
HTTPはアプリケーションレベルのプロトコルであるため、Webサーバーはアプリケーションサーバーです。アプリケーションサーバーは、まったく異なるプロトコルを使用することもできます。
ただし、Webサーバーは、「Webアプリケーション」を実行すると言われる場合にのみ、アプリケーションサーバーと呼ばれる可能性があります。これは、一般に、ある程度の複雑さの「動的」コンテンツを意味します。すべてのHTTPはアプリケーションレベルにあるため(そしてブラックボックスの外側にあるため、「静的」コンテンツから提供されるか「動的」コンテンツから提供されるかは関係ありません)、これは技術的に意味がありません。
それでも、HTTPをある種のトランスポートプロトコルであるかのように扱い、アプリケーションが「最上位」にあることを期待している人もいるため、この区別は部分的に行われますが、ほとんどの場合、マーケティング担当者は、ある種の意味のある区別があることを示唆できます。作成されたので、Webサーバーではなく「アプリケーションサーバー」に投資する必要があります。
基本的に、サーバーはコンピューターが実行しているタスクのみです。サーバーはマシンの名前ではありません(サーバーと呼ばれるのが一般的ですが)。したがって、マシンはWebサーバー、アプリケーションサーバーなどとして機能できます。
Webサーバーとは、サーバーがWebコンテンツ(HTML、PHPなど)を配信していることを意味します。典型的なサーバーソフトウェアはApacheまたはIISです。
アプリケーションサーバーは、より一般的な用語です。定義によれば、Webサーバーもアプリケーションサーバーです(Apacheソフトウェアはアプリケーションです)。ただし、アプリケーションサーバーはWebコンテンツの配信に限定されません。
私はそれがあまり混乱しないことを願っています;-)
「Webサーバー」はHTTP(そしておそらくHTML)を意味します。「アプリケーションサーバー」はどのプロトコルでもかまいません。
この区別でさえ100%ではなく、その違いを超えて、炎上戦争の領土とセマンティクスについての議論があります。
質問がJavaドメインからのものである場合、アプリケーションサーバーはJ2EE仕様に完全に準拠したサーバーであり、関連するすべての機能(Glassfish、JBoss、WebLogicなど)を提供します。
一方、 Webサーバーは、完全に実装されていない軽量サーバーです。 J2EE仕様(例:Apache Tomcat)
Webサーバー:
- Apache、IIS、nginx、Lighttpdなど。
CGI、FastCGI、SCGI、モジュールなどを介して、CGIバックエンド、PHP、.Net、Luaなどのアプリケーションとインターフェイスすることで動的コンテンツを生成できます。
Webアプリケーションサーバー:
- Tomcat / JBoss / GlassFish / WebSphere(Javaスクリプト)、G-WAN(ANSI Cスクリプト)など。
これらは、上記の例のJavaまたはCスクリプトなどの統合スクリプトエンジンを使用して、動的コンテンツをネイティブに生成します。
アプリケーションサーバーは、サーバーとスクリプトエンジン間のインターフェイスのオーバーヘッドに悩まされる必要がないため、通常は高速です。