SOAP (англ. Simple Object Access Protocol) — протокол обміну структурованими повідомленнями в розподілених обчислювальних системах, базується на форматі XML.
Спочатку SOAP призначався, в основному, для реалізації віддаленого виклику процедур ((RPC)), а назва була абревіатурою: Simple Object Access Protocol — простий протокол доступу до об'єктів. Зараз протокол використовується для обміну повідомленнями в форматі XML, а не тільки для виклику процедур. SOAP є розширенням мови (XML-RPC).
SOAP можна використовувати з будь-яким протоколом прикладного рівня: (SMTP), (FTP), HTTP та інші. Проте його взаємодія з кожним із цих протоколів має свої особливості, які потрібно відзначити окремо. Найчастіше SOAP використовується разом з HTTP.
SOAP є одним зі стандартів, на яких ґрунтується технологія (вебсервісів).
Структура протоколу
Повідомлення SOAP структурується так:
SOAP-конверт
- SOAP-заголовок
- Елемент заголовку 1
- Елемент заголовку 2
- …
- Елемент заголовку N
- Тіло SOAP
- Елемент тіла 1
- Елемент тіла 2
- …
- Елемент тіла N
- SOAP-заголовок
Приклади
Приклад SOAP POST повідомлення:
POST /InStock HTTP/1.1 Host: www.example.org Content-Type: application/soap+xml; charset=utf-8 Content-Length: 299 <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> <soap:Header> </soap:Header> <soap:Body> <m:GetStockPrice xmlns:m="http://www.example.org/stock"> <m:StockName>IBM</m:StockName> </m:GetStockPrice> </soap:Body> </soap:Envelope>
Приклад SOAP-запиту на сервер інтернет-магазину:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetails xmlns="http://warehouse.example.com/ws"> <productID>12345</productID> </getProductDetails> </soap:Body> </soap:Envelope>
Приклад відповіді:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetailsResponse xmlns="http://warehouse.example.com/ws"> <getProductDetailsResult> <productID>12345</productID> <productName>Склянка ребриста</productName> <description>Склянка ребриста. 200 мл.</description> <price>9.95</price> <inStock>true</inStock> </getProductDetailsResult> </getProductDetailsResponse> </soap:Body> </soap:Envelope>
Переваги
- SOAP є достатньо гнучким, що дозволяє використовувати різні транспортні протоколи. Стандартні реалізації використовують HTTP як транспортний протокол, однак також можливо використовувати (JMS) чи (SMTP).
- Позаяк модель SOAP каналів(з'єднань) прекрасно працює в контексті моделі HTTP запитів-відповідей, то можливо легко встановлювати з'єднання на базі існуючих фаєрволів чи проксі-серверів без жодних модифікацій самого SOAP-протоколу.
Недоліки
- Застосування SOAP для передачі повідомлень збільшує їхній обсяг і зменшує швидкість обробки. У системах, де швидкість важлива, часто надсилають XML документи безпосередньо через HTTP як звичайні HTTP параметри або застосовують протокол (REST).
- Попри те, що для SOAP є стандарт, різні програми часто генерують повідомлення в несумісному форматі. Наприклад, запит згенерований [en]-клієнтом, не завжди розпізнається сервером (WebLogic).
Посилання
- Специфікація SOAP [ 15 квітня 2021 у Wayback Machine.](англ.)
- SOAP Версія 1.2 Частина 0: Підручник для початківців [ 5 червня 2014 у Wayback Machine.](англ.)
- Список серверів для тестування — SOAPBuilders Interoperability Lab [ 19 січня 2012 у Wayback Machine.] (англ.)
Ця стаття потребує додаткових для поліпшення її . (січень 2016) |
Це незавершена стаття про Інтернет. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет