検索
特集/連載

いまさら聞けない「Apache HTTP Server」と「Apache Tomcat」の違いとは?5つの観点から比較

Webサーバ構築のためのソフトウェア「Apache HTTP Server」と「Apache Tomcat」の違いとは何か。目的や導入条件、アーキテクチャなどの観点から両者を比べる。

Share
Tweet
LINE
Hatena
画像

 「“Apache”と“Tomcat”は何が違うのか?」

 これは開発者がよく耳にする質問だが、誤解を招く恐れのある聞き方だ。一般的に、この質問で真に尋ねたいのは「『Apache HTTP Server』と『Apache Tomcat』(以下、Tomcat)は何が違うのか」という点だ。Apache HTTP ServerもTomcatも、オープンソースソフトウェアの開発プロジェクトを運営する非営利団体Apache Software Foundationが管理している。この事実を考えると、「Apache対Tomcat」という質問の不正確さが理解できるだろう。

 この混乱は主に「Apache」という単語が、「Apache HTTP Server」を指す一般用語となっていることが原因だ。1995年に公開されたApache HTTP ServerはApacheの名を冠する初のプロジェクトで、Apache Software Foundationが創設されたのはその後の1999年だった。長年の間、ApacheとApache HTTP Serverは同義語だったことから、現在の混乱につながった。

Apache HTTP ServerとTomcatの違い

 Apache HTTP ServerとTomcatは、何が違うのか。主要な5つの違いを紹介しよう。

違い1.目的

 Apache HTTP ServerとTomcatは目的が根本的に異なる。Apache HTTP ServerはWebサーバであり、その目的はテキスト、HTML、画像、音声、動画といった静的ファイルを提供することだ。Tomcatはアプリケーションサーバ(APサーバ)に分類され、通信相手がどのクライアントか、そのクライアントがログインしているかどうか、前回の通信でそのクライアントが何をしたかによって、提供するコンテンツを変化させる。

違い2.前提条件

 「Windows」「Linux」「UNIX」が稼働するコンピュータであれば、Apache HTTP Serverをインストールできる。一方Tomcatの導入には「Java」の開発・実行環境「Java Development Kit」(JDK)のインストールに加え、環境変数(OSに情報を与えるための変数)「JAVA_HOME」の適切な設定を必要とする。

違い3.アーキテクチャ

図
図 Apache HTTP ServerとTomcatの3層構造アーキテクチャにおける役割。「JDBC」はJavaプログラムからリレーショナルデータベースを操作するためのドライバ「Java Database Connectivity」を指す《クリックで拡大》

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る