В чем разница между сервером приложений и веб-сервером? - PullRequest
638 голосов
/ 01 июня 2009

В чем разница между сервером приложений и веб-сервером?

Ответы [ 25 ]

8 голосов
/ 01 июня 2009

Сервер приложений обычно разрабатывается и развертывается для обеспечения более длительных процессов, которые также будут более ресурсоемкими.

Веб-сервер используется для коротких пакетов, обычно не ресурсоемких. Это в основном для облегчения обслуживания веб-трафика.

8 голосов
/ 08 ноября 2009

В терминах Java есть еще один: веб-контейнер (или, точнее, контейнер сервлетов). Это, скажем, между веб-сервером и сервером приложений. Веб-контейнер в терминах Java - это сервер приложений, который в основном только реализует часть JSP / Servlet Java EE и не имеет нескольких основных частей Java EE, таких как поддержка EJB. Примером является Apache Tomcat.

7 голосов
/ 17 августа 2014

Граница между этими двумя становится все более тонкой.

Серверы приложений предоставляют бизнес-логику клиенту. Таким образом, его подобный сервер приложений содержит набор методов (хотя необязательно, это может быть даже сетевой компьютер, позволяющий многим запускать на нем программное обеспечение) для выполнения бизнес-логики. Таким образом, он будет просто выводить желаемые результаты, а не содержимое HTML. (похоже на вызов метода). Так что это не строго HTTP основан.

Но веб-серверы передают контент HTML в веб-браузеры (строго на основе HTTP). Веб-серверы были способны обрабатывать только статические веб-ресурсы, но появление серверных сценариев помогло веб-серверам также обрабатывать динамическое содержимое. Где веб-сервер принимает запрос и направляет его в сценарий (PHP, JSP, CGI-сценарии и т. Д.), Чтобы СОЗДАТЬ HTML-контент для отправки клиенту. Тогда веб-сервер знает, как отправить их обратно клиенту. ПОТОМУ ЧТО это то, что веб-сервер действительно знает.

Сказав это, в настоящее время разработчики используют оба из них вместе. Если веб-сервер принимает запрос, а затем вызывает сценарий для создания HTML-кода, НО-сценарий снова вызывает ЛОГИКУ сервера приложений (например, для получения сведений о транзакции) для заполнения содержимого HTML.

Таким образом, в этом случае оба сервера были использованы эффективно.

Поэтому .... Мы можем с уверенностью сказать, что в настоящее время в большинстве случаев веб-серверы используются в качестве подмножества серверов приложений. НО театрально это НЕ так.

Я прочитал много статей на эту тему и нашел эту статью весьма полезной.

7 голосов
/ 31 октября 2009

Во-первых, веб-сервер обслуживает веб-контент (HTML и статический контент) по протоколу HTTP. С другой стороны, сервер приложений - это контейнер, на котором вы можете создавать и предоставлять бизнес-логику и процессы клиентским приложениям через различные протоколы, включая HTTP, в многоуровневой архитектуре.

Сервер приложений, таким образом, предлагает гораздо больше услуг, чем веб-сервер, который обычно включает:

  • A (собственный или нет) API
  • Управление жизненным циклом объекта,
  • Государственное управление (сессия),
  • Управление ресурсами (например, пулы подключения к базе данных),
  • Балансировка нагрузки, отработка отказа ...

AFAIK, ATG Dynamo был одним из самых первых серверов приложений в конце 90-х (согласно определению выше). В начале 2000 года это было правление некоторых проприетарных серверов приложений, таких как ColdFusion (CFML AS), BroadVision (серверный JavaScript AS) и т. Д. Но ни один из них не выжил в приложении Java эра сервера.

5 голосов
/ 01 июня 2009

Сервер приложений - это машина (фактически исполняемый процесс, запущенный на некоторой машине), который «слушает» (на любом канале, используя любой протокол) запросы клиентов на любую услугу, которую он предоставляет, а затем делает что-то на основе эти запросы. (может включать или не включать переуступку клиенту)

Веб-сервер - это процесс, работающий на машине, которая «слушает» конкретно по каналу TCP / IP, используя один из «интернет» протоколов (http, https, ftp и т. Д.), И делает все, что делает, основываясь на этих входящие запросы ... Обычно (как определено изначально) он извлекал / генерировал и возвращал клиенту веб-страницу html, либо извлекал из статического html-файла на сервере, либо создавал динамически на основе параметров во входящем запросе клиента.

4 голосов
/ 21 декабря 2016

Все вышеперечисленное просто слишком усложняет что-то очень простое. Сервер приложений содержит веб-сервер, сервер приложений просто имеет на пару больше дополнений / расширений, чем стандартные веб-серверы. Если вы посмотрите на TomEE в качестве примера:

CDI - Apache OpenWebBeans
EJB - Apache OpenEJB
JPA - Apache OpenJPA
JSF - Apache MyFaces
JSP - Apache Tomcat
JSTL - Apache Tomcat
JTA - Apache Geronimo Transaction
Servlet - Apache Tomcat
Javamail - Apache Geronimo JavaMail
Bean Validation - Apache BVal

Вы увидите, что Tomcat (веб-контейнер / сервер) - это еще один инструмент в арсенале серверов приложений. Вы также можете использовать JPA и другие технологии на веб-сервере, но серверы приложений просто упаковывают все эти вещи для вашего удобства. Чтобы полностью классифицироваться как сервер приложений, вам необходимо соблюдать список инструментов, установленных каким-либо стандартом.

3 голосов
/ 31 октября 2009

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

3 голосов
/ 16 февраля 2012

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

2 голосов
/ 04 августа 2018

Сервер приложений и веб-сервер используются для размещения веб-приложения. Веб-сервер - это веб-контейнер, с другой стороны, Сервер приложений - это веб-контейнер, а также контейнер EJB (Enterprise JavaBean) или контейнер COM + для Microsoft dot Net.

Веб-сервер предназначен для обслуживания статического содержимого HTTP, такого как HTML, изображения и т. Д., А для динамического содержимого есть плагины для поддержки языков сценариев, таких как Perl, PHP, ASP, JSP и т. Д., И он ограничен протоколом HTTP. Ниже серверы могут генерировать динамический HTTP-контент.

Среда программирования веб-сервера:

IIS: ASP (.NET)

Apache Tomcat: сервлет

Причал: сервлет

Apache: Php, CGI

Сервер приложений может делать все, что способен веб-сервер, и прослушивает с использованием любого протокола, а также у сервера приложений есть компоненты и функции для поддержки служб уровня приложений, таких как пул соединений, пул объектов, поддержка транзакций, службы обмена сообщениями и т. Д.

Среда программирования сервера приложений:

МТС: COM +

БЫЛ: EJB

JBoss: EJB

Сервер приложений WebLogic: EJB

2 голосов
/ 20 февраля 2018

С https://en.wikipedia.org/wiki/Web_server

A веб-сервер - это компьютерная система, которая обрабатывает запросы через HTTP, базовый сетевой протокол, используемый для распространения информации во Всемирной паутине. Термин может относиться ко всей системе или, в частности, к программному обеспечению, которое принимает и контролирует запросы HTTP .

С https://en.wikipedia.org/wiki/Application_server#Application_Server_definition

Сервер приложений работает за веб-сервером (например, Apache или Microsoft Internet Information Services (IIS)) и (почти всегда) перед базой данных SQL (например, PostgreSQL, MySQL или Oracle).

Веб-приложения - это компьютерный код, который выполняется на серверах приложений и написан на языке (ах), который поддерживает сервер приложений, и вызывает библиотеки времени выполнения и компоненты, которые сервер приложений предлагает .

...