Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Облачная терминология
    • CDN
    • CLI
    • Cookie
    • CORS
    • DNS
    • gRPC
    • REST API
    • Виртуальная частная сеть (VPN)
    • Полное доменное имя (FQDN)
    • Протокол SSH
    • URL
    • DHCP
    • SOAP
    • Вебхук

В этой статье:

  • История возникновения
  • Структура
  • Принцип работы
  • Безопасность
  • Проблемы безопасности
  • Альтернативы
  • REST
  • Другие альтернативы
  • Примеры использования
  • Тестирование приложений в Yandex Cloud
  1. Сети и доставка контента
  2. SOAP

Протокол SOAP: что это и как работает

Статья создана
Yandex Cloud
Обновлена 5 ноября 2025 г.
  • История возникновения
  • Структура
  • Принцип работы
  • Безопасность
    • Проблемы безопасности
  • Альтернативы
    • REST
    • Другие альтернативы
  • Примеры использования
  • Тестирование приложений в Yandex Cloud

SOAP — высокоуровневый протокол обмена информацией между веб-сервисом и клиентом. Сообщения передаются в формате XML над протоколами прикладного уровня, такими как HTTPS и HTTP. Например, с помощью SOAP приложение может запросить у метеорологического сайта прогноз погоды, а у банка — курсы валют.

SOAP характеризуют три принципа:

  • Расширяемость — поддерживает интеграцию с большинством существующих механизмов безопасности и передачи данных.
  • Нейтральность — работает с любым протоколом прикладного уровня.
  • Независимость — поддерживает любую модель разработки.

История возникновенияИстория возникновения

Прототипом SOAP можно считать протокол XML-RPC, созданный в 1998 году. Однако компания Microsoft сочла его функциональность недостаточной и доработала существующее решение. Так появилась первая версия SOAP.

Статус веб-стандарта получила только версия 1.2, которая была значительно изменена. Если изначально под аббревиатурой понимался «простой протокол доступа к объектам» (Simple Object Access Protocol), то с версии 1.2 SOAP вообще никак не расшифровывается. Так разработчики подчеркнули, что протокол универсальный, а не только для «доступа к объектам».

SOAP довольно быстро стал основой для множества веб-сервисов и корпоративных систем, хотя сегодня он уступает по популярности REST.

СтруктураСтруктура

SOAP характеризуется XML-форматом, состоящим из трех элементов:

  • Конверт (Envelope) — указывает на начало и конец сообщения, а также определяет пространство имен, использованное в документе.
  • Заголовок (Header) — содержит дополнительные атрибуты сообщения, такие как данные аутентификации или настройки транзакции. Необязательный элемент.
  • Тело (Body) — само сообщение, то есть запрос или ответ.

Если при обмене сообщениями произошла ошибка (например, неверные данные аутентификации), то вернется также компонент Fault, который содержит информацию о ней.

Принцип работыПринцип работы

Обмен SOAP-сообщениями происходит следующим образом:

  1. Клиент отправляет запрос в формате XML на SOAP-эндпоинт приложения.
  2. Сервер проверяет корректность запроса по конверту и заголовку, обрабатывает метаданные.
  3. Сервер извлекает содержимое тела запроса и обрабатывает его в соответствии со своей внутренней логикой.
  4. Сервер формирует ответное SOAP-сообщение с необходимой клиенту информацией.
  5. Клиент получает сообщение, анализирует его и извлекает запрошенную информацию. В случае ошибки действует согласно заданной логике, например, отображает сообщение об ошибке пользователю.

Обычно процесс также включает работу механизмов безопасности, таких как аутентификация, расшифровка сообщения и проверка подписи.

Пример запроса и ответа

Запрос курса USD на 17 октября 2025 года у банка:

<soapenv:Envelope
    xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
    xmlns:cur="http://bank.example.ru/currency">
   <soapenv:Header>
      <cur:AuthHeader>
         <cur:Username>api_user</cur:Username>
         <cur:Password>password</cur:Password>
      </cur:AuthHeader>
   </soapenv:Header>
   <soapenv:Body>
      <cur:GetExchangeRate>
         <cur:Currency>USD</cur:Currency>
         <cur:Date>2025-10-17</cur:Date>
      </cur:GetExchangeRate>
   </soapenv:Body>
</soapenv:Envelope>

Ответ:

<soapenv:Envelope
    xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
    xmlns:cur="http://bank.example.ru/currency">
   <soapenv:Header>
      <cur:ResponseInfo>
         <cur:RequestId>171025</cur:RequestId>
         <cur:Timestamp>2025-10-17T14:11:00Z</cur:Timestamp>
      </cur:ResponseInfo>
   </soapenv:Header>
   <soapenv:Body>
      <cur:GetExchangeRateResponse>
         <cur:Rate>0.79</cur:Rate>
         <cur:Currency>USD</cur:Currency>
         <cur:Date>2025-10-17</cur:Date>
      </cur:GetExchangeRateResponse>
   </soapenv:Body>
</soapenv:Envelope>

БезопасностьБезопасность

SOAP использует собственный стандарт обеспечения безопасности — WS-Security. Он предоставляет несколько механизмов, работающих на уровне приложения:

  • Подпись — обеспечивает целостность, аутентичность сообщений и легитимность отправителя.
  • Шифрование — защищает содержимое сообщений от несанкционированного доступа.
  • Аутентификация — подтверждает личность пользователя с помощью токенов.

Сами по себе эти механизмы не являются самодостаточной системой безопасности, но служат фундаментом для ее реализации. WS-Security можно использовать совместно с другими, более надежными средствами, например SSO и TLS.

Проблемы безопасностиПроблемы безопасности

Риски и угрозы безопасности при работе с SOAP:

  • При недостаточной или неправильной настройке протокол уязвим для стандартных атак: инъекций, повторного воспроизведения сообщений, перехвата информации и других. Для устранения всех уязвимостей нужна высокая квалификация.
  • При регулярном обмене сообщениями следует ограничить защиту до необходимого минимума, иначе она значительно замедлит процесс. Например, без необходимости не рекомендуется совместно использовать и шифрование, и подпись.
  • Использование SOAP одновременно с несколькими другими XML-схемами, такими как SAML, может привести к проблемам совместимости на уровне библиотек и дополнительным сложностям в управлении безопасностью.

АльтернативыАльтернативы

Для некоторых приложений использование SOAP — не самый оптимальный выбор из-за высоких затрат ресурсов. Формат XML предполагает множество дополнительных символов, что утяжеляет сообщение и замедляет передачу. Если для вашего приложения это критически важно, ознакомьтесь с другими средствами.

RESTREST

Чаще всего SOAP сравнивают с REST. Это архитектурный стиль, который предполагает обмен сообщениями без сохранения состояния (данные об участниках и история сообщений не сохраняются) и не зависит от технологий, используемых сервером и клиентом. REST напрямую использует протокол HTTP и не ограничен только одним возможным форматом данных. Сравним методы подробнее:

Аспект SOAP REST
Форматы XML XML, JSON, CSV, HTML, Atom, RSS и другие
Сохранение состояния Опционально Не поддерживается
Транспортный протокол Любой HTTP
Стандарты безопасности WS-Security, поддерживает другие технологии Не имеет собственной системы безопасности, но поддерживает HTTPS и аутентификацию с помощью токенов
Производительность Низкая Высокая
Сложность настройки Сложная Простая
Сообщество Небольшое Обширное
Где используется Корпоративные системы, legacy-приложения Мобильные и веб-приложения

Другие альтернативыДругие альтернативы

В зависимости от нужд вашего приложения вы также можете рассмотреть другие способы обмена данными:

  • gRPC — высокопроизводительный протокол на основе HTTP/2, использующий бинарный формат передачи данных. Часто реализуется в средах, где ресурсы ограничены, например, в интернете вещей и микросервисах.
  • GraphQL — поддерживает декларативную выборку данных через один эндпоинт. Результаты передаются в виде абстрактного типа данных (графа) и чаще всего оборачиваются в формат JSON. Используется в средах, где важна гибкость передаваемых данных, например, когда в одном сообщении надо передать и медиаконтент, и текст.
  • WebSockets — двусторонняя связь в реальном времени. Используется для непрерывного обмена данными, как в случае чатов.
  • XML-RPC — предшественник SOAP, сохраняющий популярность благодаря облегченному XML-формату. Подходит для вызовов простых удаленных процедур.

Примеры использованияПримеры использования

Громоздкий синтаксис XML иногда может быть и преимуществом. При правильной настройке протокол имеет повышенную безопасность, позволяет легче обнаружить ошибки и избежать проблем с совместимостью. Рассмотрим примеры сценариев, в которых SOAP может быть оптимальным выбором:

  • Электронная коммерция — SOAP популярен для транзакционных операций с сохранением состояния и повышенными требованиями к безопасности.
  • Медицинские приложения — протокол обеспечивает высокий уровень конфиденциальности, что важно для передачи чувствительных медицинских данных.
  • Корпоративные системы — SOAP легко интегрируется с любыми, непохожими друг на друга системами и устаревшими приложениями, открывая возможности для масштабирования.
  • Научные приложения — протокол удобен для обмена точными данными с повышенными требованиями к формату.

Тестирование приложений в Yandex CloudТестирование приложений в Yandex Cloud

Yandex Cloud предлагает инструмент Yandex Load Testing для тестирования производительности и функционального поведения разных приложений, в том числе по протоколу SOAP. Клиентам облака доступен генератор нагрузки с гибкими конфигурациями, подробными отчетами и возможностью управлять ими.

Подробнее см. в документации Load Testing.

Была ли статья полезна?

Предыдущая
DHCP
Следующая
Вебхук
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»