Web サーバーとアプリケーション サーバー:違いは?
Web サーバーとアプリケーション サーバーの両方が、ユーザーのコンテンツ要求に応答します。ただし、2 つのサーバー タイプにはいくつかの重要な違いがあり、これらの違いを理解することで、ニーズに合った適切なソフトウェアおよびハードウェア インフラストラクチャを構成するのに役立ちます。
ウェブ サーバーとアプリケーション サーバーの違いについては、以下をご覧ください。 日常のユースケース どちらがビジネス ニーズにより適しているかを確認してください。
アプリ サーバーとウェブ サーバー:主な違い
アプリ サーバーとウェブ サーバーの主な違いの概要は次のとおりです。
ウェブ サーバー | 比較ポイント | アプリケーション サーバー |
ウェブサイトをホストし、単純なウェブ リクエストに応答する | 主な目的 | アプリケーションをホストし、ビジネス ロジックを通じて複雑なやり取りを提供します |
HTML 経由で静的コンテンツのみを配信 | コンテンツの種類 | 静的コンテンツと動的コンテンツを配信 |
HTTP/HTTPS プロトコルのみ | プロトコル | クライアントとサーバーの対話は、HTTP/HTTPS を含むいくつかのプロトコルを介して発生する可能性があります |
いいえ | アプリケーション接続 | はい |
静的データベースにアクセスできる | データベース接続 | アプリケーション データベースにアクセスできる |
ウェブブラウザ | 典型的なクライアント | ウェブおよびモバイル アプリケーション、ウェブ ブラウザに対応 |
マルチスレッドをサポートしていません | マルチスレッド | マルチスレッドを使用して複数のリクエストを並行して処理 |
多くのリソースを消費しないトラフィックを促進 | 資源消費量 | リソース集約型のプロセスを促進 |
ウェブコンテナのみ | コンテナ | Web コンテナー (サーブレット、JSP、JSF、Web サービス)、EJB コンテナー (JTA)、アプリケーション クライアント コンテナー (DI、セキュリティ) |
非常に低い | 容量 | 高い |
ブラウザに情報を表示するハイパーテキスト ドキュメント | インタラクション結果 | データを含み、クライアントのニーズに応じて特定の目的を果たすファイル |
ウェブ サーバーとは
Web サーバーは、Web ページを格納、処理し、クライアントに配信するコンピューター システムです。クライアントはほとんどの場合、Web ブラウザーまたはモバイル アプリケーションです。セットアップに応じて、Web サーバーは 1 つ以上の Web サイトを格納できます。
このタイプのサーバーは、次のような静的 HTML コンテンツのみを配信します:
- ドキュメント
- 画像
- 動画
- フォント
従来、Web サーバーは動的コンテンツやサーバー側プログラミングを処理しません。 Web サーバーは、Hypertext Transfer Protocol (HTTP または HTTPS) 要求のみを受け入れて実行します。オプションで、動的コンテンツを処理するためのコンポーネントを追加できます。
アプリケーション サーバーとは
アプリケーション サーバーは、クライアント アプリケーションのコンテンツとアセットを配信するソフトウェア フレームワークです。クライアントには、ウェブベースのアプリケーション、ブラウザ、モバイル アプリが含まれます。
アプリケーション サーバーは、クライアントにビジネス ロジックへのアクセスを提供します。ビジネス ロジックを通じて、アプリ サーバーはデータを動的コンテンツに変換し、アプリケーションの機能を有効にします。動的コンテンツの例:
- 取引結果
- 意思決定のサポート
- リアルタイム分析
このサーバー タイプは、クライアントとサーバー側コードの間の主要なリンクです。アプリケーション サーバーの一般的なタスクには次のようなものがあります。
- 取引管理
- セキュリティ
- 依存性注入 (DI)
- 同時実行
アプリケーション サーバーは、クラスタリング、フェイルオーバー、負荷分散などのプロセスも処理します。
ウェブ サーバーとアプリ サーバーの重複
Web ブラウザーが主要なアプリケーション クライアントになったとき、アプリと Web サーバーの間の境界線はあいまいになりました。
ほとんどの Web サーバーには、動的コンテンツ生成を可能にするスクリプト言語 (ASP、JSP、PHP、Perl など) 用のプラグインがあります。たとえば、IIS 環境に .NET プラグインを追加すると、Web サーバーをサーバー側のコードに接続し、クライアントに動的コンテンツを提供できます。
アプリサーバー側にも重複があります。多くのアプリケーション サーバーは Web サーバー機能を提供し、HTTP をプライマリ プロトコルとして使用します。
ユースケースとテクノロジーが重複しているため、最も一般的なサーバーは 2 つのタイプのハイブリッドです。サーバー機能を組み合わせたハイブリッド ソリューションにより、最適なシステム速度と機能が保証されます。
最も人気のあるウェブ サーバー
最も一般的な Web サーバーの概要は次のとおりです。
ニンクス
Nginx は、リバース プロキシ、メール プロキシ、ロードバランサとしても機能するオープンソースのウェブサーバーです。 Nginx はイベント駆動型で拡張性が高く、複数のリクエストを同時に処理できます。
Nginx の使用を開始するには、ガイドの「Ubuntu 20.04 に Nginx をインストールする方法」または「CentOS 8 に Nginx をインストールする方法」を参照してください。
Apache HTTP サーバー
Apache HTTP サーバー(Apache とも呼ばれます)は、無料のオープンソース ウェブサーバーです。 Apache は、LAMP スタックの一部です。LAMP スタックは、インターネット上のすべてのウェブサイトの約 40% を動かしているソフトウェア スタックです。
Apache は、htaccess を含む豊富な機能を提供します 、IPv、FTP、HTTP/2、帯域幅スロットリング、負荷分散。
Microsoft IIS
Microsoft IIS (インターネット インフォメーション サービス) は、Windows Server 用の無料の Web サーバー ソフトウェア パッケージです。 IIS は Windows オペレーティング システムでのみ実行されます。
桟橋
Jetty は、HTTP サーバー、HTTP クライアント、javax.servlet を提供するオープンソース プロジェクトです。 容器。 Jetty は主に Web サーバーですが、マシン間の通信を促進することもできます。
ライトスピード
LiteSpeed は、優れたパフォーマンスと拡張性を備えた Web サーバーです。 LiteSpeed は幅広い機能を提供し、使いやすい Web 管理コンソールを備えています。
最も人気のあるアプリケーション サーバー
市場で最も普及しているアプリケーション サーバーは次のとおりです。
Apache Tomcat
Apache Tomcat は、多くの場合、Apache HTTPD と組み合わせて使用されるオープンソースのアプリ サーバーです。
Tomcat は、Java サーブレットを実行し、JavaServer Page コードを含むページを配信し、Java EE (Java Enterprise Edition) アプリを提供できます。
Tomcat を初めて使用する場合は、Ubuntu に Tomcat をインストールする方法または CentOS に Tomcat をインストールする方法のチュートリアルをご覧ください。
Oracle WebLogic
Oracle WebLogic Server は、Java EE 標準を使用して分散アプリをデプロイするためのアプリケーション サーバーです。 WebLogic は、オラクルの製品およびクラウド サービス ポートフォリオと完全に統合されています。
グラスフィッシュ
Glassfish は、Java サーブレットと Enterprise JavaBeans (EJB) をサポートするオープンソースの Java EE アプリケーション サーバーです。 Glassfish は Web サーバーとしても機能します。
JBoss
JBoss アプリケーション サーバーは、Java アプリケーションを構築、デプロイ、およびホストするためのオープン ソース プラットフォームです。 JBoss はさまざまなプラットフォームで動作し、Java をサポートするすべてのオペレーティング システムで使用できます。
アプリケーション サーバーとウェブ サーバー:ビジネスに適したサーバーはどれですか?
Web サーバーとアプリケーション サーバーの違いを理解したので、どちらが適しているかを簡単に判断できます。
- ウェブ サーバーを使用する 静的なウェブページを提供している場合
- Jetty のようなシンプルなアプリケーション サーバーを使用する または Apache Tomcat JSP とサーブレットを必要とするアプリケーションがある場合 .
- JBoss などの本格的なアプリケーション サーバーを使用する または Oracle WebLogic 複雑な機能を持つアプリケーションがある場合 分散トランザクションやメッセージングなど
もう 1 つのオプションは、プラグインを使用して Web サーバーに機能を追加することです。その場合、Web サーバーは動的応答生成を、CGI スクリプト、JSP、サーブレット、ASP (Active Server Pages)、またはサーバー側 JavaScript などのサーバー側テクノロジ オプションに委任できます。
同じシステムで両方のサーバー タイプを使用する
一般的なセットアップは、Web サーバーとアプリケーション サーバーの両方を同じシステムにデプロイすることです。この設定は、静的コンテンツと動的コンテンツの両方を提供する Web サイトに適しています。その場合、Web サーバーはアプリケーション サーバーのサブセットになり、両方のサービスが同じハードウェア上で実行されます。
両方のタイプのサーバーを展開する主な理由は、システム パフォーマンスの向上です。各サーバーはそれぞれの長所に焦点を当てており、単純な Web リクエストがアプリケーション サーバーのパフォーマンスに影響を与えるのを防ぎます。
例として、リアルタイムの価格情報を提供する e ストアを考えてみましょう。このようなサイトには通常、ユーザーが製品を購入できるフォームがあります。ユーザーがクエリを送信すると、Web サイトはルックアップを実行し、HTML ページ内に結果セットを返します。
この機能は、アプリケーション サーバーの有無にかかわらず動作します。
シナリオ 1:プラグインを備えた Web サーバーのみを使用する
Web サーバーは、e ストア機能を提供します:
- サーバーはリクエストを受け取り、それをサーバーサイド プログラムに渡します。
- サーバーサイド プログラムは、データベースまたはフラット ファイルから価格データを検索します。
- サーバーサイド プログラムが HTML レスポンスを作成します。
- ウェブ サーバーがレスポンスをウェブ ブラウザに送り返します。
シナリオ 2:ウェブ サーバーとアプリケーション サーバーの両方を使用する
アプリケーション サーバーには、価格検索用のビジネス ロジックが格納されます。ウェブサーバーはレスポンスの生成を委任しますが、スクリプトはアプリケーション サーバーのルックアップ サービスを呼び出してから、HTML レスポンスを作成します。
価格設定ロジックをアプリ サーバーに配置することで、アプリケーションのさまざまな部分でロジックを再利用できるようになります。最初のシナリオでは、データが HTML ページに埋め込まれているため、価格検索サービスは再利用できません。
結論
アプリケーションと Web サーバーの重複は、各ユース ケースにいくつかの有効なソリューションがあることを意味します。ほとんどのシステムは、Web サーバー、アプリ サーバー、またはその 2 つの組み合わせで動作します。
ただし、すべてのセットアップが同じように優れているわけではありません。 2 つのサーバー タイプの違いを理解することで、コストを節約し、より簡単にスケーリングして、ユース ケースにより適したものを選択することができます。
クラウドコンピューティング