Открыть сервисСервис

SOAP и REST — протоколы веб-сервисов

SOAP (Simple Object Access Protocol) и REST (Representational State Transfer) — два основных подхода к построению веб-сервисов и обмену данными между распределёнными системами. SOAP — это протокол обмена структурированными сообщениями на базе XML, разработанный консорциумом W3C; REST — архитектурный стиль, предложенный Рой Филдингом в 2000 году, основанный на принципах работы гипертекста и стандартных методов HTTP. Оба подхода широко применяются в корпоративной разработке, интеграции систем и публичных API, однако существенно различаются по устройству, области применения и требованиям к инфраструктуре.

История

SOAP

Протокол SOAP появился в конце 1990-х годов. В 1998 году компания Microsoft представила спецификацию SOAP 0.9 как способ вызова удалённых процедур поверх HTTP. В 1999 году вышла версия 1.1, а в 2003 году консорциум W3C утвердил стандарт SOAP 1.2. Протокол изначально задумывался как транспортно-независимый: сообщения SOAP могут передаваться по HTTP, SMTP, TCP и другим протоколам. Ключевую роль в развитии SOAP сыграло появление стандарта WSDL (Web Services Description Language), описывающего интерфейс сервиса в машиночитаемом виде.

REST

Термин REST ввёл Рой Филдинг в своей докторской диссертации 2000 года «Architectural Styles and the Design of Network-based Software Architectures». Филдинг описал REST как архитектурный стиль, выведенный из практики работы Всемирной паутины: ресурсы идентифицируются URI, клиент-серверное взаимодействие строится на методах HTTP (GET, POST, PUT, DELETE), состояние сессии не хранится на сервере. Популярность REST резко выросла в середине 2000-х годов благодаря удобству для браузерных и мобильных приложений и отказу от громоздких XML-схем.

Устройство и принципы

SOAP

Сообщение SOAP имеет строгую XML-структуру: конверт (Envelope), заголовок (Header) и тело (Body), где размещается запрос или ответ. Дополнительно могут использоваться элементы Fault для описания ошибок. Ключевые особенности:

REST

REST-сервис представляет набор ресурсов, доступных по уникальным URI. Клиент взаимодействует с ресурсами через стандартные HTTP-методы, а состояние передаётся в форматах JSON, XML или других. Принципы REST по Филдингу:

  1. Единообразие интерфейса.
  2. Отделение клиент-сервер.
  3. Отсутствие состояния (stateless).
  4. Кэшируемость ответов.
  5. Слоистая архитектура.
  6. Код по требованию (опционально).

Сравнение

КритерийSOAPREST
Формат данныхXMLJSON, XML и др.
ТранспортHTTP, SMTP, TCPHTTP
КонтрактWSDLOpenAPI/Swagger, RAML
БезопасностьWS-SecurityTLS, OAuth 2.0
КэшированиеОграниченноНативно через HTTP
Вес сообщенийВысокийНизкий
Поддержка транзакцийWS-AtomicTransactionНет в стандартном виде

Применение

SOAP традиционно используется в корпоративных интеграциях, банковских и государственных системах, где критичны надёжность доставки, аудит и строгие контракты. Примеры — интеграция ERP-систем, обмен с платёжными шлюзами по стандарту ISO 20022.

REST стал стандартом де-факто для публичных API, мобильной разработки и микросервисной архитектуры. Большинство крупных сервисов — от социальных сетей до государственных порталов — предоставляют REST-интерфейсы.

Критика

SOAP критикуют за избыточность, сложность отладки и высокую стоимость внедрения. REST, в свою очередь, упрекают в отсутствии строгой типизации и стандартизированных контрактов (хотя спецификация OpenAPI частично закрывает этот пробел), а также в сложности реализации транзакций и надёжной доставки.

Источники

  • Fielding R. T. Architectural Styles and the Design of Network-based Software Architectures. — University of California, Irvine, 2000.
  • W3C SOAP 1.2 Specification.
  • Richardson L., Amundsen M., Ruby S. RESTful Web APIs. — O'Reilly, 2013.
  • Erlich J. SOAP vs REST: Understanding the Differences. — IBM Developer, 2021.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru