Problem solve Get help with specific problems with your technologies, process and projects.

Tomcat versus Apache

What is the difference between the Tomcat server and Apache server? Are there any differences?

Apache is an HTTP/1.1 compliant Web server and Tomcat is a servlet container and JSP engine. They are often used together to optimize static and dynamic content handling. When running them together, Tomcat is typically configured as an add-on to the Apache Web server to handle JSPs and servlets.

When using Apache and Tomcat together, the scenario usually goes like this:

  1. Apache listens for HTTP requests.
  2. When a request arrives, Apache checks whether it is a servlet request, a request for a JavaServer Page or a request for static content.
  3. If the request targets a servlet or JSP page, Apache forwards the request to Tomcat.
  4. If the request is for static content (non-servlet or JSP), Apache handles the request.
More information about the details of how Tomcat and Apache can be used together can be found at: http://jakarta.apache.org/tomcat/tomcat-3.2-doc/tomcat-apache-howto.html

Dig Deeper on Topics Archive

Join the conversation

1 comment

Send me notifications when other members comment.

Please create a username to comment.

It's worth mentioning that the Tomcat vs Apache question has become slightly ill worded, as Apache no longer refers specifically to the Apache HTTP Server (AHS), but instead is used to refer to the Apache Software Foundation. So a better verbiage would bet "What's the difference between Tomcat and the Apache HTTP Server?" 

The link at the end of the last graph goes to a detailed article I wrote on the questions over at TheServerSide, a TechTarget 'sister site.' It goes into greater detail. But the key takeway is this:
  • Apache HTTP Server is primarily a file server that does not perform programatic logic
  • Apache Tomcat runs on Java and allows Java based logic to be executed on requests that come into the server
Basically, AHS is a file server, while Apache Tomcat is a Java based logic engine for web requests.