我已经经历了各种各样的网站,他们提供的唯一答案是 – Restful Web服务使用Http自己的方法,如(GET,POST,PUT,DELETE)..而基于SOAP的Web服务使用自己的自定义方法.
– Restful Web服务将每个服务方法视为一种资源,并给它一个URI ..
– 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数据包(expires)上的标头来启用浏览器的缓存.更不用提gzip压缩来提高效率了.性能方面,REST实际上是通过SOAP来完成的.
对于SOAP来说,SOAP适用于状态操作. WS *标准(安全性,事务处理等)处理这种在分布式场景中相当普遍的管道.可以使用REST来完成REST,但是它不会真的是REST. SOAP对于定义客户端和服务器之间的操作合同非常有用,这在分布式场景中至关重要.
所以我的意见(以及整个SOAP与REST的事情都是高度评价的),将SOAP用于分布式计算场景,将REST用于Web API.