Назад | Перейти на главную страницу

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

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

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

Платформа: java, python, php

Спасибо

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

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

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

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

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

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

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

Простой способ - прогнать пару сценариев:

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

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

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

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

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

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

HTH