1.1.3 Простая архитектура web приложений
Здесь под понятием Web Server подразумевается, статический веб-сервер. Задачи которого:
Отдавать статический контент.
Понимать протокол HTTP.
Защищать информацию (tls).
Идентифицировать пользователей / Вести логи.
Передавать запрос в случае необходимости Web Application Server
Сервер веб-приложений, для выдачи динамического контента. Задачи, отличные от статического веб-сервера:
Реализует доступ к СУБД
Реализует возможность исполнять код на ЯП (бизнес-логика)
Веб сервер получает URL, по значению пути (после "/") возвращает объект. В качестве примеров таких объектов можно привести:
image, video, html, css, javascript
Когда необходимо отдать динамический контент, который меняется в зависимости от каких-либо параметров, тогда используется веб сервер приложений (web application server). В качестве примера, возьмем сервер Flask, который обслуживает приложения написанные на ЯП Python. Flask анализирует путь в URL, и в зависимости от пути, выполняет написанный код, функцию.
Часто WEB Application Server используют в связке с WEB Server, для увеличения производительности и пропускной способности Web Application Server, иначе увеличится время ожидания, нагрузка. WEB Server, например Nginx, работает быстрее, чем большинство WEB Application Server, поэтому у него в задачах отдавать статический контент, а когда нужно вызвать динамический контент, он работает в качестве прокси сервера, передает запрос WAS и обратно ответ (уже обработанный контент).