2008-08-27 5 views
510

В чем разница в функциональности между HTTP-сервером Apache и Apache Tomcat?Разница между HTTP-сервером Apache и Apache Tomcat?

Я знаю, что Tomcat написан на Java, а HTTP-сервер - на C, но кроме этого я действительно не знаю, как они отличаются. Имеют ли они разную функциональность?

+10

Я добавил краткое описание в моем блоге, может быть, это поможет кому-то: http://www.tugay.biz/2014/11 /what-is-tomcat-is-it-web-server-what.html – 2015-01-16 09:59:18

+13

Мне было интересно, что именно спрашивал ОП, и я не понимаю, почему он был закрыт. К счастью, есть ответы. – 2016-05-27 07:51:05

ответ

361

Apache Tomcat используется для развертывания Java-приложений и JSP-страницы. Таким образом, в вашем проекте Java вы можете создать файл WAR (short для Web ARchive) и просто отбросить его в каталоге развертывания в Tomcat.

Таким образом, в основном Apache является HTTP-сервером, обслуживающим HTTP. Tomcat - это сервлет и JSP-сервер, обслуживающий Java-технологии.

Tomcat - контейнер сервлетов. Сервлет, в конце, является классом Java. Файлы JSP (похожие на PHP и более старые файлы ASP) генерируются в Java-код (HttpServlet), который затем скомпилируется в файлы .class сервером и выполняется виртуальной машиной Java.

+1

Я знаю, что скрипты Perl могут работать в tomcat. Разве это не правда? – serengeti12 2011-05-19 13:54:25

20

Tomcat - это, прежде всего, сервер приложений, который обслуживает запросы к настраиваемым Java-сервлетам или JSP-файлам на вашем сервере. Он обычно используется в сочетании с HTTP-сервером Apache (по крайней мере, по моему опыту). Используйте его для ручной обработки входящих запросов.

HTTP-сервер, сам по себе, лучше всего для обслуживания статического контента ... HTML-файлы, изображения и т.д.

+8

Я сомневаюсь, что «Tomcat - это, прежде всего, заявка на сервер». – Rachel 2012-03-28 16:05:18

+4

tomcat в первую очередь * означает * быть сервером приложений. хотя он * делает * статический контент сервера. – Scalable 2013-11-12 15:08:07

+0

Да Tomcat действительно является главным образом сервером приложений, если термин подразумевается в смысле контейнера Servlet, который создает динамический контент, доставляемый в веб-браузеры. В качестве одного из первых контейнеров Servlet, это причина Tomcat. – 2014-05-21 07:22:13

90

В дополнение к лучшим ответам выше, я думаю, следует сказать, что Tomcat имеет собственный HTTP-сервер, встроенный в него, и полностью функциональен для обслуживания статического контента. В зависимости от вашей конфигурации виртуальной машины Java она может фактически превзойти традиционные разъемы в apache, такие как mod_proxy и mod_jk.

Это говорит о том, что полностью оптимизированный сервер Tomcat должен быстро обслуживать статические файлы, и если у вас есть Java-сервлеты, JSP и файлы ColdFusion в дополнение к статическому контенту, вы можете найти tomcat.

9

Если вы используете Java-технологию (Servlet/JSP) для создания веб-приложения, вы, вероятно, будете использовать Apache Tomcat. Однако, если вы используете другие технологии, такие как Perl, PHP или ruby, лучше (проще) использовать Apache HTTP Server.

-1

Apache - это HTTP-сервер, который служит HTTP, но apache tomcat является контейнером сервлета Java, ОСОБЕННОСТИ ИТ. Подобно веб-серверу, настроенному на выполнение Java-сервлета и страниц JSP.

60
  1. Apache - универсальный HTTP-сервер, который поддерживает ряд дополнительных опций, недоступных Tomcat.
  2. Хотя Tomcat может использоваться как HTTP-сервер общего назначения, вы также можете настроить Apache и Tomcat для совместной работы с Apache, обслуживающим статический контент, и перенаправлением запросов на динамический контент в Tomcat.
2

Ну, Apache - это веб-сервер HTTP, где Tomcat также является веб-сервером для сервлетов и JSP. Кроме того, Apache является предпочтительным по сравнению с Apache Tomcat в реальном времени

14

сервер Apache - это http-сервер, который может обслуживать любые простые HTTP-запросы, где tomcat-сервер фактически является контейнером сервлетов, который может обслуживать запросы сервлета Java.

Веб-сервер [apache] обрабатывает веб-клиент (веб-браузеры) и пересылает его в контейнер сервлетов [tomcat] и контейнер обрабатывает запросы и отправляет ответ, который пересылается веб-сервером веб-клиенту [браузер].

Также вы можете проверить эту ссылку для получения дополнительного уточнения: -

https://sites.google.com/site/sureshdevang/servlet-architecture