SOAP – Simple Object Access Protocol
REST – Representational State Transfer
SOAP is a protocol used to implement web services.
REST is an architectural design pattern for developing web services
SOAP cannot use REST as it is a protocol.
REST architecture can have SOAP protocol as part of the implementation.
SOAP specifies standards that are meant to be followed strictly.
REST defines standards but they need not be strictly followed.
SOAP client is more tightly coupled to the server which is similar to desktop applications having strict contracts.
The REST client is more flexible like a browser and does not depend on how the server is developed unless it follows the protocols required for establishing communication.
SOAP supports only XML transmission between the client and the server.
REST supports data of multiple formats like XML, JSON, MIME, Text, etc.
SOAP reads are not cacheable.
REST read requests can be cached.
SOAP uses service interfaces for exposing the resource logic.
REST uses URI to expose the resource logic.
SOAP is slower.
REST is faster.
Since SOAP is a protocol, it defines its own security measures.
REST only inherits the security measures based on what protocol it uses for the implementation.
SOAP is not commonly preferred, but they are used in cases which require stateful data transfer and more reliability.
REST is commonly preferred by developers these days as it provides more scalability and maintainability.