Ответ
SOAP — это протокол обмена сообщениями, который может работать поверх различных транспортных протоколов. Он не привязан к одному конкретному протоколу.
Основные транспортные протоколы для SOAP:
- HTTP/HTTPS — наиболее распространенный вариант, особенно в веб-сервисах.
- SMTP — для асинхронного обмена сообщениями по электронной почте.
- TCP — для прямого сокет-соединения.
- JMS — в Java-экосистеме для messaging.
Ключевые моменты:
- Формат сообщения всегда XML, независимо от транспорта.
- HTTP популярен из-за простоты, обхода фаерволов и интеграции с веб-инфраструктурой.
- HTTPS добавляет шифрование для безопасности.
Пример SOAP-запроса поверх HTTP:
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: text/xml; charset=utf-8
Content-Length: 150
SOAPAction: "http://example.org/GetStockPrice"
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<m:GetStockPrice xmlns:m="http://example.org/stock">
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>