ApacheTomcat®ソフトウェアは、Javaサーブレット、JavaServer Pages、Java Expression LanguageおよびJava WebSocketテクノロジーのオープンソース実装です。 Java Servlet、JavaServer Pages、Java Expression LanguageおよびJava WebSocketの仕様は、Java Community Processの下で開発されています。
Apache Tomcatより抜粋
JavaEEとは、サーバーサイドJavaAPIの言語仕様であり、その言語仕様に準拠したAPIの実装は各ベンダーに任されています。
ApacheTomcatは、JavaEEの言語仕様であるJavaサーブレット、JSP、JEL、WebSocketを実装したWebアプリケーションサーバーです。
ここでいう、Webアプリケーションサーバーはサーバーにインストールするミドルウェアを意味します。
Webアプリケーションサーバーの目的は、Webブラウザを起動しているクライアントとHTTPプロトコルに準拠したネットワーク接続を確立し、
WebブラウザからのHTTPリクエストに対して、利用者の要求に応じた動的なHTMLファイルやJSONをHTTPレスポンスとして返す事です。
先の概要図にHTMLファイル以外の静的コンテンツ(css,javaScript,画像ファイルなど)が記述していません。 実際には、ApacheTomcatはHttpプロトコルに準拠しているので、静的コンテンツ(css,javaScript,画像ファイルなど)をHTTPレスポンスとしてWebブラウザに送信できます。 記述しなかった理由は、WebサーバーとWebアプリケーションサーバーを初めて利用される方が、以下の役割を混同しないで欲しいからです。
Tomcatは、JavaSEのメジャーバージョンのバージョンアップに伴い、メジャーバージョンをアップをしています。
Apache Tomcat | JavaSE | JavaEE | 概要 | ||||||
---|---|---|---|---|---|---|---|---|---|
系統 | 最新版 | 最新版 リリース日 |
Servlet | JSP | EL | WebSocket | JASPIC | ||
9.0.x | 9.0.0.M22 (alpha) | 2017/06/26 | 8以上 | 4.0 | TBD (2.4?) | TBD (3.1?) | TBD (1.2?) | 1.1 | JavaEE8言語仕様のリリースが遅れているため、先行的リリース |
8.5.x | 8.5.16 | 2017/06/26 | 7以上 | 3.1 | 2.3 | 3.0 | 1.1 | 1.1 | Stableバージョン |
8.0.x | 8.0.45 | 2017/07/01 | 7以上 | 3.1 | 2.3 | 3.0 | 1.1 | N/A | superseded・・8.5系が代替先 |
7.0.x | 7.0.79 | 2017/07/01 | 6以上※1. | 3.0 | 2.2 | 2.2 | 1.1 | N/A | ※1.WebSocketを利用する場合には、7以上を利用する |
6.0.x | 6.0.53 | 2017/04/07 | 5以上※1. | 2.5 | 2.1 | 2.1 | N/A | N/A | |
5.5.x | 5.5.36 | 2012/10/10 | 1.4以上 | 2.4 | 2.0 | N/A | N/A | N/A | archived |
4.1.x | 4.1.40 | 2009/06/26 | 1.3以上 | 2.3 | 1.2 | N/A | N/A | N/A | archived |
3.3.x | 3.3.2 | 2004/03/09 | 1.1以上 | 2.2 | 1.1 | N/A | N/A | N/A | archived |
背景色の意味:最新版 旧バージョンサポート対象 旧バージョンサポート対象外
2017年7月時点で商用の環境としてApacheTomcatをインストールする場合には、
JavaSEのバージョンが7以上を利用していることを前提に「8.5.16」を推奨します。
ApacheTomcatのリビジョンは、セキュティの脆弱性対策やバグ対応などの重要なリリースでバージョンが上がります。
そのため商用環境に導入するTomcatは、Alpha、BetaリリースではないStable版(安定版)の最新バージョンを導入します。
Tomcat9.x系の導入は、JavaEE8の動向とApacheTomcat9.x系のリリース状況を見極めた上安定版に昇格してから着手することを推奨します。
商用環境ではなく、HTTP/2の学習及び研究を目的としてα版を教育環境に利用する場合には、Tomcat9.0を早めに着手するのも良いでしょう。