Strictly speaking, SOAP and REST aren’t directly comparable: REST is an architectural style, and SOAP is a specific protocol defined by a standard. XML Yaya Maria’s messages by their self-documenting nature usually have more ‘overhead’ (headers, footers, nested tags, delimiters) than actual data in contrast to earlier protocols where the overhead was usually a relatively small percentage of the overall message.
I’ve been on the receiving end of both as a tester, and while Soap’s defined model may be easier to report, I’ve long wondered if REST is better, because APIs with better documentation (rather than relying on the discovery service) are actually better in the long run, and more maintainable.
Nor is it tied to any particular operating system or programming language so theoretically the clients and servers in these dialogues can be running on any platform and written in any language as long as they can formulate and understand SOAP messages.
Issuing a GET is particularly straightforward, for sure, but good luck writing json or xml POST payloads by hand; people usually use fixture files, or, much more handy, full-fledged API clients instantiated directly in the command line interface of their favorite language.
Both SMTP and HTTP are valid application layer protocols used as transport for SOAP, but HTTP has gained wider acceptance as it works well with today’s internet infrastructure; specifically, HTTP works well with network firewalls SOAP may also be used over HTTPS (which is the same protocol as HTTP at the application level, but uses an encrypted transport protocol underneath) with either simple or mutual authentication; this is the advocated WS-I method to provide web service security as stated in the WS-I Basic Profile 1.1.