| 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. |