Разница между веб-сервером и сервером приложений
Как дилетант, как я понимаю разницу между веб-сервером и сервером приложений? Если бы вы могли привести пример использования веб-приложения на основе Java в очень "простых" терминах, это было бы действительно здорово.
Кроме того, когда мы говорим, Weblogic, это только веб-сервер?
5 ответов
Веб-сервер - это то, что обрабатывает HTTP-запросы и ответы.
Сервер приложений (например, WebLogic, WebSphere, JBoss AS, Glassfish и т. Д.) Обычно включает в себя веб-сервер, но также добавляет гораздо больше функций. Самое главное, что он управляет объектами. Будь то сервлеты (контейнер сервлетов), EJB (контейнер ejb), слушатели JMS и т. Д.
Веб-сервер может выполнять только веб-приложения, т.е. сервлеты и JSP, и имеет только один контейнер, известный как веб-контейнер, который используется для интерпретации / выполнения веб-приложений.
Сервер приложений может выполнять приложение Enterprise, т.е. i (e (servlets, jsps и EJBs)), которое имеет два контейнера: 1. Веб-контейнер (для интерпретации / выполнения сервлетов и jsps) 2. Контейнер EJB (для выполнения EJB). он может выполнять такие операции, как балансировка нагрузки, разграничение транзакций и т. д. и т. д.
Я бы сказал, что определения меняются. В обобщенном контексте веб-сервер - это сервер, который может принимать входящие веб-запросы и знать, как на них следует реагировать и как на них реагировать. Некоторые запросы являются статическими (html-файлы, изображения и т. Д.), Некоторые - динамическими. В случае динамических запросов веб-сервер будет знать, куда направить обработку запроса, это может быть страница JSP или сервлет Java, скрипт PHP, скрипт CGI на Perl и т. Д. И т. Д.
Хотя "веб-сервер" в этом контексте выполняет динамический обработчик, он не считается включающим какие-либо вспомогательные функции промежуточного программного обеспечения для динамического обработчика.
Сервер приложений, напротив, является общей средой исполнения, которая предлагает некоторую поддержку уровня промежуточного программного обеспечения. Примерами являются EJB-контейнеры или.NET Framework, встроенные в Windows (где Windows сама по себе является "сервером приложений"). Не существует неотъемлемого требования, чтобы сервер приложений имел какое-либо отношение к веб-запросам (хотя многие это делают), это просто общий контекст выполнения и контейнер для любого типа приложения, которое предлагает некоторую дополнительную поддержку промежуточного программного обеспечения.
В чисто веб-ориентированном контексте многие люди проводят черту между статическим и динамическим контентом. В этом определении "веб-сервер" может обрабатывать только запросы на статическую информацию сам, и он будет передавать запросы на динамический контент "серверу приложений". Например, Apache httpd является веб-сервером, а Tomcat является сервером приложений. IIS является комбинацией обоих. В веб-мире Java сервер приложений может быть либо контейнером сервлетов (например, Tomcat), либо полнофункциональным контейнером Java EE (например, JBoss, WebLogic или WebSphere), который обеспечивает контейнер поддержки промежуточного программного обеспечения Java EE (EJB) в дополнение к Контейнер сервлетов.
В основном, если мы говорим, что основное различие между веб-сервером и сервером приложений, это протоколы, на которых работают эти серверы.
Веб-сервер - он работает на таких протоколах, как HTTP и HTTPS. Примером этого сервера является Apache. Для веб-сервера вы используете JSP, Servlet.
Сервер приложений - работает по любому протоколу. Примером является JBOSS. На сервере приложений мы размещаем EJB, веб-сервис или любую бизнес-логику.
И добавляя к предыдущим ответам, Weblogic является сервером приложений, а не только веб-сервером.