Главная
Java
BuzzWords
SOAP
SOAP – это целое семейство протоколов и стандартов, для обмена структурированными сообщениями.
Это более тяжеловесный и сложный вариант с точки зрения машинной обработки.
Поэтому REST работает быстрее.
Исходя из всех недостатков XML-RPC создали протокол SOAP
SOAP (от англ. Simple Object Access Protocol - простой протокол доступа к объектам; вплоть до спецификации 1.2) - протокол обмена структурированными сообщениями в распределённой вычислительной среде. Первоначально SOAP предназначался в основном для реализации удалённого вызова процедур (RPC). Сейчас протокол используется для обмена произвольными сообщениями в формате XML, а не только для вызова процедур. Официальная спецификация последней версии 1.2 протокола никак не расшифровывает название SOAP. SOAP является расширением протокола XML-RPC.
SOAP может использоваться с любым протоколом прикладного уровня: SMTP, FTP, HTTP, HTTPS и др. Однако его взаимодействие с каждым из этих протоколов имеет свои особенности, которые должны быть определены отдельно. Чаще всего SOAP используется поверх HTTP.
Обычно SOAP используют протокол HTTP и метод POST .
- SOAP Envelope (конверт) — сюда входит все сообщение. Состоит из заголовка и тела.
- SOAP Header (заголовок) — дополнительная информация (авторизация, например).
- SOAP Body (тело) — само сообщение.
- SOAP Fault (ошибка) — способ передачи ошибки от сервера к клиенту.
- integer предназначен для хранения целочисленных значений. 4 байта
- unsignedint предназначен для хранения беззнакового целого числа.
- long для хранения одного числа отводится восемь байтов.
- boolean предназначен для реализации логических значений.
- float предназначен для представления численных данных..
- double также предназначен для численных данных.
- timeDuration предназначен для хранения данных о времени. Вид значений этого типа описывается в стандарте ISO 8601
- binary предоставляет возможность хранить и обрабатывать данные в двоичном виде.
- uriReference позволяет задавать URI (Universal Resource Identifier) в качестве содержимого какого-либо элемента. Детально структура URI описана в документах RFC 2396 и RFC 2732.
Пример:
// Запрос:
POST /MyService HTTP/1.1
Host: www.servicesite.com
Content-Type:text/xml; charset="utf-8"
Content-Length: xxxx
SOAPAction: "www.servicesite.com/action"
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/ envelope"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding">
<SOAP-ENV:Body>
<m:GetSomeValue xmlns:m=" www.servicesite.com/action ">
<symbol>SYM </symbol>
</m:GetSomeValue>
</SOAP-ENV:Body>
</Soap-ENV:Envelope>