Apacheと、Tomcatの理解が曖昧なので、自分用の勉強用としてまとめていきます。
それぞれ一言で言うと、
Apache:Webサーバ
Tomcat:サーブレットコンテナ
それでは、それぞれ解説していきます。
#通信を表した図
参考
訳の分からない用語がたくさんですが、後ほど解説するので、まずは、流れを説明します。
Webブラウザでアクセス
→httpリクエストをApache Webサーバ
に対して送る
→Apache
はmodJk
というモジュールを使ってAPサーバ(アプリケーションサーバ)にAJPリクエストを送る
→AJPが受け取り、Webコンテナ(サーブレットコンテナ(画面に見せる側))へ
→WebコンテナからEJBコンテナへ
→EJBコンテナがDBに接続して、Webコンテナへ(ここでコンピュータが読み取り可能な言語にコンパイルしてあげるのがjavaVM)
→WebコンテナからApacheへAJPレスポンスを送り
→ApacheからWebブラウザにhttpレスポンスを送り
→画面に表示される。
#Apache
簡単に言うと、アパッチ (Apache)
とは全世界的に普及しているWebサーバのソフトのことです。
正式名称は、「Apache HTTP Server」
###ホームページが表示される流れ
まず、ホームページを見るときに使うソフト(Webブラウザ)からホームページのファイルが置いてあるコンピュータ(Webサーバ)に対して「このページをおくれ」なお願いが出されます。
→そのお願いに対して、WebサーバからWebブラウザに「ほれ、そのページだよ」とお返事がきます。
→お返事を受け取ったWebブラウザは、受け取った内容(ホームページのファイル)を画面上に表示してくれます。
これが、ホームページが表示されるときの流れです。
###Webサーバとは
ウェブサーバ (Webサーバ)(英:Web server)とはホームページやWebサービスを置いておくコンピュータであり、
ホームページを見るソフト(Webブラウザ)から「あのページをおくれ」と言われたら「ほれ、そのページだよ」と渡してやるのが仕事のサーバです。
簡単に言うと、Webサービスを置くサーバのこと
WebサーバをWebサーバたらしめているのは「Webサーバのソフト」なのです。
普通のコンピュータにWebサーバのソフトを入れることによって、Webサーバとしてのお仕事ができるコンピュータになります。
大事なのは、箱ではなく中身です。
Webサーバのソフトさえ入れれば、あなたが普段使っているパソコンだってWebサーバになれます。
#Tomcat
簡易的なWebサーバとしての機能を持ちます。
正式名称は、Apach Tomcat
と言います。 (だからややこしい)
Apache Tomcatとは、Java Servletを動かすときに必要なソフト(サーブレットコンテナ)のひとつです。
###Java Servlet
Java Servlet
とは、Webサーバ上でお仕事をするJavaのプログラムです。Java Servletを動かすためのソフトで、サーバ上で動くJavaプログラムのことです。
動的なページが生成可能です。
補足
ここでは、JSPもServletとみなす。と言うのも、JSPはコンパイルするとServletに変換されるから。
Java
Javaのプログラムはほぼどんな環境でも動くことが特徴の言語です。
Javaを生み出した人は、このプログラミング言語を使って、いろいろなプログラムを作れるようにしました。
Javaプログラムの1つに、Webサーバで動くJavaプログラムがあります。
この「Webサーバ上で動くJavaプログラム」を「Java Servlet(サーブレット、Servlet)」と言います。
Java Servletは、「サーブレットコンテナ(Webコンテナ、サーブレットエンジン)」
と呼ばれるソフトが必要です。
一番初めの「通信の流れを表した図」のAPサーバ内のwebコンテナの部分です。
このサーブレットコンテナの1つが**「Apache Tomcat」**です。
Java Servletの特徴
1.ライフサイクル管理
2.マルチスレッド対応
3.プラットフォーム非依存
それぞれの特徴についてはこちらを参考に https://wa3.i-3-i.info/word12835.html
以上で 「Apache」,「Tomcat」の説明はある程度終わります。
「Tomcatあれば、Apacheが必要ないんじゃない?」ということが分かりやすく書かれたQiitaを最後に貼っておきます。