Может ли кто-нибудь объяснить разницу между сервером приложений/веб-сервером/веб-сервисами?

Может ли кто-нибудь объяснить разницу между сервером приложений/веб-сервером/веб-сервисами?

Я знаю, что с помощью веб-сервера html-страницы передаются с сервера на клиент, с помощью веб-сервисов отправляется xml-файл, но все равно... я их не понимаю; даже не вижу разницы между ними.

Может ли кто-нибудь объяснить этот термин максимально просто?

Платформа: Java, Python, PHP

Спасибо

решение1

Веб-сервер — это то, что предоставляет вам контент с использованием протокола HTTP(S); он получает запросы в форме «дайте мнеhttp://some.site.com/some/page?some=параметр" и отправляет обратно ответ, который может быть HTML-страницей или чем-то еще, что может быть передано по HTTP(S); то есть, по сути,что-либо(подробности см. в MIME).

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

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

решение2

Точного определения этих терминов не существует, но если говорить очень приблизительно, то:

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

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

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

решение3

Простой способ — проработать несколько сценариев:

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

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

Обычно, когда вы слышите «веб-сервисы» в терминологии Web 2.0, например API, вы говорите о языке программирования, который прослушивает веб-сервер в ожидании команд или запросов.

Возьмем, к примеру, Twitter. Сам Twitter обслуживается веб-сервером, но когда клиент нажимает на «подписчики», браузер отправляет веб-сервисную команду веб-серверу с вопросом, кто является подписчиками.

Веб-сервер обслуживает файлы по определению, но он должен запустить какой-то тип веб-сервиса, чтобы взаимодействовать с клиентами. Кроме того, в кругах системных администраторов веб-сервисом может быть любой сервис, который может быть представлен, поскольку он связан с веб-сервером. Например, если у вас есть веб-сайт с 4 клиентскими приложениями (mysql, tomcat, apache, netbeans), вы можете свободно называть их «веб-сервисами», даже если технически они являются веб-серверами и службами баз данных, но я не думаю, что это то, что вы искали. Придерживайтесь веб-сервисов, поскольку это связано с API.

Также это должно хорошо расширяться -http://en.wikipedia.org/wiki/Веб_сервериhttp://en.wikipedia.org/wiki/Веб_сервис

НТН

Связанный контент