Разница между веб-сервером и контейнером сервлетов

В чем разница между «Веб-сервером» и «Контейнером сервлетов»?
В общем, все веб-серверы Servlet (Web) Containers тоже или наоборот?

Я использую Apache Tomcat для JSP и Apache для PHP, но не могу определить точную разницу между этими двумя, где именно лежит разница?

Я попытался найти предыдущие темы, но не смог найти много.

Благодаря! 🙂

Контейнер сервлета это веб-сервер, который должен иметь возможность запускать сервлеты Java.

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

В соответствии с этими определениями:

  1. Все контейнеры сервлетов – это веб-серверы
  2. Не все веб-серверы являются контейнерами сервлетов. IE HTTP-сервер Apache не может напрямую запускать Java-сервлет.

HTTP – это протокол передачи гипертекста. Оба Apache и Tomcat будут принимать HTTP-запросы.

Разница в том, что Apache просто HTTP-сервер. Он обслуживает статические HTML-страницы.

У Tomcat есть HTTP-прослушиватель внутри него, но в дополнение к этому у него есть сервлет / JSP-движок. Он может обслуживать как статические, так и динамические HTML-страницы.

Вы можете использовать Tomcat без Apache.

Apache не может обрабатывать запросы сервлета / JSP без наличия на нем сервлета / JSP-механизма

ServletContext – это объект, специфичный для приложения, тогда как ServletConfig – объект, специфичный для сервлета. Объект ServletConfig создается, поскольку веб-контейнер создает экземпляр соответствующего сервлета