传统的 Web 服务通过简单对象访问协议 (SOAP) 进行消息的交换。它是一种用于一单向通信的消息格式,将消息组合成 XML 文档。描述了消息的传输,主要是通过 HTTP 协议。它定义一组 RPC 调用与 SOAP 消息互相转换的契约,将 RPC 调用封装为 SOAP 消息进行传输,并在服务器端反向转换为服务器端 RPC 调用,最终结果再以类似机制返回给客户端。
基于 SOAP 的服务是重量级的服务,因为它有严格的约束和标准,开发人员需要深入了解基于 SOAP 的 web 服务中用到的关键技术:XML,WSDL、SOAP 及 UDDI,这样就缺少了开发的灵活性。
相比基于 XML 技术的其它臃肿的 web 服务而言,REST 显得更加简洁,更轻量级。增删查改是应用软件里面最常见的操作,而在 HTTP 方法中,正好有其对应的方法实现,所以可以有效的降低复杂度。同时也能够满足异构平台之间的交互。
当前,基于SOAP的服务和REST二者都有一定的应用场景,互联网上的很多应用,同时提供基于SOAP的服务和REST。