学习 WebService 第二步:知识准备——SOAP vs REST(wsdl和wadl区别)(转)

原文地址:蓝精灵——默默争上游

笔记:

SOAPREST是两种实现WebService的主要方案(Web API部署REST貌似占了大半壁江山)
  • REST Web Services 基于 HTTP 协议
  • SOAP Web Services 支持多种传输协议:HTTP、SMTP、MIME等
Java开发WebService最重要的两个规范
  • JSR-224 (JAX-WS:Java API for XML-Based Web Services ) ,主要使用soap协议,使用wsdl来描述;
  • JSR-311 (JAX-RS:The Java API for RESTful Web Services),使用wadl描述;
RESTSOAP的区别:
  • REST为每一个资源指定一个唯一的URI,用HTTP的4种方法发送请求:GET、POST、PUT、DELETE直观地表示获取、创建、更新和删除。
  • SOAP仅仅使用POST方法发送请求,用一个唯一的URI标识服务的入口。(因为SOAP并不假定传输数据的下层协议,因此必须设计为能在各种协议上运行。即使绝大多数SOAP是运行在HTTP上,使用URI标识服务。这种设计被诟病之处,在于DELETE操作也要用POST方法来发送,而其实HTTP协议有更和逻辑的DELETE方法可用。)
尺长寸短:
REST的优点:REST简单而直观,把HTTP协议利用到了极限。
SOAP复杂的需求摧残了易用性。
说到底,没有谁是万能的
  • REST用WADL来描述REST接口。WADL就像是WSDL的REST版,随着REST被应用到复杂的领域,SOAP的影子无处不在。
  • 事实上,一些Web Service提供者提供的REST API只有REST的外壳,传输的请求和应答全然是简化了的SOAP。

“没有一项技术能一劳永逸地解决所有问题,只需要在预定的约束下优美地解决所在领域的问题就足够了。

一项新技术推出的时候总是引来无数的跟风和吹捧,只有当尘埃落定之后才能得到中肯的评价。”

posted @ 2018-03-19 11:05  怎么著都不成  阅读(3474)  评论(0编辑  收藏  举报