我已经浏览了各种网站,他们提供的唯一答案是 - Restful webservices使用Http自己的方法,如(GET,POST,PUT,DELETE)..而基于SOAP的webservices使用自己的自定义方法.. - Restful Web服务将每个服务方法视为资源,并为其提供URI.
但是,我不明白这些答案的全部意义.至于为什么这些事情证明比基于SOAP的Web服务有如此大的优势..
一个例子将不胜感激
REST自然适用于Web/Cloud API,而SOAP适用于分布式计算方案.
带宽是REST的主要优点,因为没有复杂的文档可以遍历(即XML,SOAP标头),这对于性能良好的Web API来说非常重要.JSON是一种广泛认可且简单的数据交换标准,并且易于被浏览器和客户端代码读取,这就是为什么大多数RESTful API(雅虎都是一个很好的例子)提供JSON的原因.
更不用说REST可用于XmlHttpRequest对象,这对于Web API的AJAX能力也是至关重要的.
当然,REST的可缓存性功能也不容忽视.因为REST基于HTTP,所以它可以利用HTTP(和Web本身)的许多语义,通过利用HTTP数据包(过期)上的标头来启用浏览器的缓存.更不用说像gzip压缩这样的东西来提高效率.性能方面,REST确实将它钉在SOAP上.
至于SOAP,well SOAP适合有状态操作.WS*标准(安全性,事务等)处理这种管道,这在分布式场景中非常常见.当然,它可以通过REST来完成,但它实际上并不是REST.SOAP非常适合定义客户端和服务器之间的操作协定,这在分布式方案中至关重要.
所以我的观点(以及整个SOAP vs REST的事情都是高度自以为是),将SOAP用于分布式计算场景,将REST用于Web API.