<p>What is the difference in terms of functionality between the Apache HTTP Server and Apache Tomcat?</p>

<p>I know that Tomcat is written in Java and the HTTP Server is in C, but other than that I do not really know how they are distinguished. Do they have different functionality?</p>

[{'answer_id': 30642, 'author': 'levand', 'author_id': 3044, 'author_profile': 'https://Stackoverflow.com/users/3044', 'pm_score': 5, 'selected': False, 'text': '<p>Tomcat is primarily an application server, which serves requests to custom-built Java servlets or JSP files on your server. It is usually used in conjunction with the Apache HTTP server (at least in my experience). Use it to manually process incoming requests.</p>\n\n<p>The HTTP server, by itself, is best for serving up static content... html files, images, etc.</p>\n'}, {'answer_id': 30645, 'author': 'Bernie Perez', 'author_id': 1992, 'author_profile': 'https://Stackoverflow.com/users/1992', 'pm_score': 10, 'selected': True, 'text': '<p>Apache Tomcat is used to deploy your Java Servlets and JSPs. So in your Java project you can build your WAR (short for Web ARchive) file, and just drop it in the deploy directory in Tomcat.</p>\n\n<p>So basically Apache is an HTTP Server, serving HTTP. Tomcat is a Servlet and JSP Server serving Java technologies.</p>\n\n<p>Tomcat includes Catalina, which is a servlet container. A servlet, at the end, is a Java class. JSP files (which are similar to PHP, and older ASP files) are generated into Java code (HttpServlet), which is then compiled to .class files by the server and executed by the Java virtual machine. </p>\n'}, {'answer_id': 108916, 'author': 'ethyreal', 'author_id': 18159, 'author_profile': 'https://Stackoverflow.com/users/18159', 'pm_score': 7, 'selected': False, 'text': "<p>In addition to the fine answers above, I think it should be said that Tomcat has it's own HTTP server built into it, and is fully functional at serving static content too.  Depending on your java virtual machine configuration it can actually outperform going through traditional connectors in apache such as mod_proxy and mod_jk.</p>\n\n<p>That said a fully optimized Tomcat server should serve static files fast and if you have Java servlets, JSPs and ColdFusion files in addition to static content you may find tomcat does an excellent job by itself.</p>\n"}, {'answer_id': 9810741, 'author': 'vishal', 'author_id': 1284207, 'author_profile': 'https://Stackoverflow.com/users/1284207', 'pm_score': 4, 'selected': False, 'text': '<p>If you are using java technology(Servlet/JSP) for making web application you will probably use Apache Tomcat.\nHowever, if you are using other technologies like Perl, PHP or ruby, its better(easier) to use Apache HTTP Server. </p>\n'}, {'answer_id': 9910737, 'author': 'Karthikeyan', 'author_id': 1298586, 'author_profile': 'https://Stackoverflow.com/users/1298586', 'pm_score': -1, 'selected': False, 'text': '<p>Apache is an HTTP web server which serve as HTTP.</p>\n\n<p>Apache Tomcat is a java servlet container. It features same as web server but is customized to execute java servlet and JSP pages.</p>\n'}, {'answer_id': 11359898, 'author': 'Satish Dhiman', 'author_id': 1032427, 'author_profile': 'https://Stackoverflow.com/users/1032427', 'pm_score': 6, 'selected': False, 'text': "<ol>\n<li>Apache is a general-purpose http server, which supports a number of advanced options that Tomcat doesn't.</li>\n<li>Although Tomcat can be used as a general purpose http server, you can also set up Apache and Tomcat to work together with Apache serving static content and forwarding the requests for dynamic content to Tomcat.</li>\n</ol>\n"}, {'answer_id': 12562725, 'author': 'yadul', 'author_id': 1694090, 'author_profile': 'https://Stackoverflow.com/users/1694090', 'pm_score': 2, 'selected': False, 'text': '<p>Well, Apache is HTTP webserver, where as Tomcat is also webserver for Servlets and JSP.\nMoreover Apache is preferred over Apache Tomcat in real time</p>\n'}, {'answer_id': 13682919, 'author': 'streak', 'author_id': 1210813, 'author_profile': 'https://Stackoverflow.com/users/1210813', 'pm_score': 5, 'selected': False, 'text': '<p>an apache server is an http server which can serve any simple http requests, where tomcat server is actually a servlet container which can serve java servlet requests. </p>\n\n<p>Web server [apache] process web client (web browsers) requests and forwards it to servlet container [tomcat] and container process the requests and sends response which gets forwarded by web server to the web client [browser].   </p>\n\n<p>Also you can check this link for more clarification:-</p>\n\n<p><a href="https://sites.google.com/site/sureshdevang/servlet-architecture" rel="noreferrer">https://sites.google.com/site/sureshdevang/servlet-architecture</a></p>\n\n<p>Also check this answer for further researching :-</p>\n\n<p><a href="https://softwareengineering.stackexchange.com/a/221092">https://softwareengineering.stackexchange.com/a/221092</a></p>\n'}]
['https://Stackoverflow.com/questions/30632', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/277/']