Die Antwort von VanDom ist grundsätzlich korrekt. Nur würde ich die Ergänzung etwas umformulieren. Apache ist eine Organisation und kein Produkt/Projekt. Der HTTP Server ist eines der bekanntesten Produkte/Projekte von Apache und wird daher oft selbst als Apache bezeichnet. Der korrekte Name lautet Apache HTTP Server.
Apache HTTP Server = Webserver
Apache Tomcat = Servletcontainer mit integrierter Basisfunktionalität eines Webserver
Tomcat (Bestandteil des Jakarta Project von Apache) wird nicht in den HTTP Server von Apache integriert.
Man kann und sollte in professionellen Umgebungen einen WebServer die Anfragen an den Servletcontainer weiterleiten lassen. Hierfür ist der Apache HTTP Server ausgezeichnet geeignet. Nicht zuletzt da es aus dem gleichen Hause wie Tomcat kommt wird dort auch die entsprechenden Schnittstellen in Form eines Modules bereitgestellt (Tomcat Connector: z.B. mod_jk und mod_jk2).
Der Standalone-Betrieb des Tomcat ist jedoch ohne weiteres möglich (Verbindung default über Port 8080) und wird in Entwicklungsumgebungen oft ohne vorgeschalteten Webserver eingesetzt.
Zu beachten ist, dass die unterschiedlichen Versionen des Apache Tomcat unterschiedliche Servlet und JSP Spezifikationen unterstützten. So wird zum Beispiel die Servletspezifikation 2.4 und die JSP-Spezifikation 2.0 erst ab 5.5 unterstützt.
Das bedeutet: Je nachdem welche Spezifikation die deployte Webapplikation voraussetzt muss die entsprechende Tomcat-Version eingesetzt werden. Womit wiederum natürlich jeweils unterschiedliche JDK's verwendet und somit auf dem Server installiert sein müssen.
menace schrieb:
stells dir wie einen weiteren (instabilen) layer vor.
Inwiefern ein (instabiler) Layer?