Tomcatとは

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アプリケーションサーバーはサーバーにインストールするミドルウェアを意味します。

アプリケーションサーバーTomcatの概略図

Webアプリケーションサーバーの目的は、Webブラウザを起動しているクライアントとHTTPプロトコルに準拠したネットワーク接続を確立し、
WebブラウザからのHTTPリクエストに対して、利用者の要求に応じた動的なHTMLファイルやJSONをHTTPレスポンスとして返す事です。

動的コンテンツ

先の概要図にHTMLファイル以外の静的コンテンツ(css,javaScript,画像ファイルなど)が記述していません。 実際には、ApacheTomcatはHttpプロトコルに準拠しているので、静的コンテンツ(css,javaScript,画像ファイルなど)をHTTPレスポンスとしてWebブラウザに送信できます。 記述しなかった理由は、WebサーバーとWebアプリケーションサーバーを初めて利用される方が、以下の役割を混同しないで欲しいからです。

  • ApacheHttpServerなどのWebサーバーは静的コンテンツ(固定html,css,javascript,画像)を返すのが主目的
  • ApacheTomcatなどのWebアプリケーションサーバーは、動的コンテンツ(出力するhtml,jsonなど動的に生成する内容)を返すのが主目的

Tomcatのバージョンと歴史

JavaSEとTomcatバージョンの概略図

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を早めに着手するのも良いでしょう。