Разлика между Apache HTTP Server и Apache Tomcat?

Каква е разликата по отношение на функционалността между Apache HTTP Server и Apache Tomcat?

Знам, че Tomcat е написан на Java, а HTTP сървърът - на C, но освен това не знам по какво се различават. Имат ли различна функционалност?

Решение

Apache Tomcat се използва за разгръщане на вашите Java Servlets и JSP. Така че във вашия Java проект можете да създадете WAR (съкращение от Web ARchive) файл и просто да го пуснете в директорията за разполагане в Tomcat.

По същество Apache е HTTP сървър, който обслужва HTTP. Tomcat е сървър за сървлети и JSP, който обслужва Java технологии.

Tomcat включва Catalina, който е контейнер за сървлети. В крайна сметка сървлетът е Java клас. JSP файловете (които са подобни на PHP и по-старите ASP файлове) се генерират в Java код (HttpServlet), който след това се компилира в .class файлове от сървъра и се изпълнява от Java виртуалната машина.

Коментари (17)

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

При все това напълно оптимизиран сървър Tomcat трябва да обслужва статични файлове бързо и ако имате Java сървлети, JSP и ColdFusion файлове в допълнение към статичното съдържание, може да откриете, че Tomcat се справя отлично сам по себе си.

Коментари (2)

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

HTTP сървърът сам по себе си е най-подходящ за обслужване на статично съдържание... html файлове, изображения и т.н.

Коментари (5)