Делая webservice
момент, я всегда слышал эти два варианта как явных кандидатов, также принимая во внимание их варианты.
Но на данный момент, из прочитанных статей, мне все еще не очень понятно.
Идея состоит в том, чтобы иметь возможность оценить, в каких случаях может быть выгоднее использовать тот или иной вариант, принимая во внимание пользу и/или вред, который они могут иметь.
SOAP и REST нельзя сравнивать напрямую, поскольку первый — это протокол (или, по крайней мере, пытается им быть), а второй — архитектурный стиль. Это, вероятно, один из источников путаницы, поскольку люди склонны называть любой HTTP REST API, который не является SOAP.
SOAP определяется как стандартный протокол связи (набор правил), обмен сообщениями на основе спецификации XML. SOAP использует различные транспортные протоколы, такие как HTTP и SMTP. Стандартный протокол HTTP упрощает для модели SOAP туннелирование через брандмауэры и прокси-серверы без внесения каких-либо изменений в протокол SOAP. SOAP иногда может быть медленнее, чем технологии промежуточного программного обеспечения, такие как CORBA или ICE, из-за его подробного формата XML.
REST описывает набор архитектурных принципов, с помощью которых данные могут передаваться через стандартизированный интерфейс (например, HTTP). REST не содержит дополнительного уровня обмена сообщениями и фокусируется на правилах проектирования для создания служб без сохранения состояния. Клиент может получить доступ к ресурсу, используя уникальный возвращаемый URI и представление ресурса. С каждым новым ресурсом представления клиенту предлагается передать состояние. При доступе к ресурсам REST с помощью протокола HTTP URL-адрес ресурса служит идентификатором ресурса, а GET, PUT, DELETE, POST и HEAD являются стандартными операциями HTTP, выполняемыми с этим ресурсом.
Я оставляю вам изображение таблицы для самого простого понимания: