💻

Tomcatとはなんぞや

に公開

Apache Tomcat Server

なんぞやシリーズ第2弾。前回WebサーバのApacheを学習しました。
次にAPサーバの学習としてTomcatを選択した。現場で扱うミドルウェアなので抑えておきたい。インフラ学習、案外楽しい

1. Tomcatの基本

Tomcatとは?

  • Java Servlet や JSP を実行するためのアプリケーションサーバー(APサーバー)
  • 静的コンテンツ(HTML、画像など)も配信可能で、Webサーバー機能も備えている
  • オープンソースソフトウェアであり、Javaで開発されている
  • レストランに例えると「コック」のような存在
     → ブラウザからの注文(リクエスト)を受けて、動的にページを生成して返す

2. 主要な構成要素と用語

サーブレット(Servlet)

  • Javaで書かれた、Webサーバー上で動作するプログラム
  • HTTPリクエストを受け取り、レスポンスを生成する役割

サーブレットコンテナ(Webコンテナ)

  • サーブレットを動かす実行環境
  • Tomcatはこのサーブレットコンテナの代表例
     → サーブレットのライフサイクル管理、マルチスレッド処理、リクエスト/レスポンス処理などを担当

JSP(JavaServer Pages)

  • HTML内にJavaコードを埋め込んだページテンプレート
  • サーバー側でコンパイルされてサーブレットに変換され、Webページとして動的に生成される

アプリケーションサーバー(APサーバー)

  • Webアプリケーションの実行環境
  • TomcatはServlet/JSP に特化した軽量なAPサーバー
  • DB接続やトランザクション処理などはAPサーバーの役割

↓おそらくこんなイメージ↓

※DBサーバとWebブラウザは別途学習

他言語との比較
  • PHPで構築されたWebアプリ:Apache HTTP Server + PHP-FPM の構成が主流
  • RubyやPython:Rails、Djangoなどが同様の役割を担う
  • TomcatはJavaベースのWebアプリに特化

3. パッケージングと設定ファイル

JARファイル(.jar

  • Javaアプリケーションをまとめたパッケージ
  • 主にデスクトップアプリやライブラリとして使用

WARファイル(.war

  • Webアプリケーション用のパッケージ形式
  • TomcatのようなWebコンテナ上で展開・実行される

JARとWARは、Javaアプリケーションの配布を容易にするフォーマット


4. Tomcatの設定ファイル

server.xml

  • Tomcat全体の設定を定義するファイル
  • 所在地:[TOMCAT_HOME]/conf/server.xml

主な設定内容:

  • ポート番号(HTTP/HTTPS)
  • コンテキストパス(Webアプリのルート)
  • バーチャルホスト定義 など

web.xml

  • Webアプリ固有の設定を定義
  • 所在地:各Webアプリの WEB-INF/web.xml

主な役割:

  • リクエストURLとサーブレット/JSPのマッピング
  • 初期化パラメータなどの構成情報

XML(Extensible Markup Language)

  • server.xmlweb.xml は、XML形式で記述される
  • データ構造の定義や、コンピュータ間の情報交換を容易にする汎用マークアップ言語

5. Tomcatと他製品の比較

JBoss(現:Red Hat JBoss EAP)

  • Tomcatよりも高機能でエンタープライズ向け
  • Jakarta EE(旧 Java EE)全仕様をサポート
  • Tomcatは軽量かつ高速、JBossは機能リッチで本格的な業務利用向け

参考文献

https://qiita.com/tanayasu1228/items/11e22a18dbfa796745b5

https://wa3.i-3-i.info/word12836.html

https://qiita.com/Yuriko-Y/items/06a16dde3d85ec83342b

https://qiita.com/shuncask/items/3b9c5167aaa99d6dbb07

https://blog.dcs.co.jp/cicd/20210826-app-architecture.html

Discussion