🐴 Дело о REST и SOAP

Небольшой, но показательный нюанс про REST и SOAP, который часто упускают. REST жёстко привязан к транспорту: работает только через HTTP/HTTPS. Зато формат данных гибкий — может быть JSON, XML или что-то ещё, в зависимости от того, как договорились клиент и сервер.

REST → HTTP/HTTPS → TCP → IP

SOAP устроен ровно наоборот. Формат сообщений у него жёстко зафиксирован — только XML, никаких вариантов. А вот с транспортом всё гибче: SOAP не привязан к HTTP.

Самый распространённый вариант — через HTTP/HTTPS, именно поэтому SOAP и REST кажутся похожими по архитектуре:

SOAP → HTTP/HTTPS → TCP → IP

Но это лишь один из возможных сценариев. SOAP описывает формат сообщений и правила их обработки — а транспорт находится на отдельном уровне и жёстко к HTTP не привязан. Спецификация SOAP 1.2 прямо допускает передачу сообщений через разные протоколы, в том числе напрямую через TCP, без HTTP как прослойки:

SOAP → TCP → IP

Между SOAP и транспортным уровнем необязательно должен стоять ещё один прикладной протокол — в отличие от REST, которому HTTP нужен всегда, без исключений.

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

#QA #Тестирование #API

🐴 Дело о REST и SOAP | Сетка — социальная сеть от hh.ru 🐴 Дело о REST и SOAP | Сетка — социальная сеть от hh.ru