Веб-сервер предназначен для обслуживания запросов HTTP. Сервер приложений также может обслуживать HTTP-запросы, но не ограничивается только HTTP. Он также может поддерживать другие протоколы, таких как RMI/RPC. Поскольку веб-серверы хорошо подходят для обработки статического контента, а сервера приложений для формирования динамического контента, большинство производственных сред имеют веб-сервер, выступающий в качестве обратного прокси-сервера для сервера приложений. Это означает, что при обслуживании запроса страницы, статическое содержимое (например, изображения/статический HTML) обрабатывается веб-сервером, который интерпретирует запрос. Используя какой-то метод фильтрации (в основном расширение запрашиваемого ресурса), веб-сервер идентифицирует запрос динамического содержимого и прозрачно пересылает на обработку серверу приложений. Tomcat умеет выполнять приложения? Да, он является сервером приложений. Tomcat умеет отдавать статический контент? Да, он является веб-сервером. От того, что Tomcat умеет отдавать данные и по другим протоколам, он не перестает быть и веб-сервером в тот числе. Возьмите какую-нибудь БД, в которой, на хранимых процедурах описана сложная логика. Тем же ораклом можно в ответ на SQL-запросы даже сообщения через email отправлять. Такую штуку можно назвать сервером приложений, но веб-сервером уже нет, потому что все это не обслуживает статический контент. Возьмите чистый апач, в котором не включены никакие модули для поддержки языков программирования. Он умеет отдавать только статичные файлы и картинки по протоколу HTTP. Это веб-сервер, но не сервер приложений. Добавьте к нему модуль для поддержки PHP, разместите там программу на PHP, которая делает запросы к БД и динамически формирует страницы - теперь апач стал еще и сервером приложений.
|