WebService之SOAP与REST

来源:互联网 发布:arp攻击 c语言 编辑:程序博客网 时间:2024/05/21 07:09

WebService之SOAP与REST

@[webservice, soap, rest]

  • WebService之SOAP与REST
    • SOAP
    • REST
    • 区别
    • 适用场景
      • REST
      • SOAP
    • 参考

SOAP

其实SOAP最早是针对RPC的一种解决方案,简单对象访问协议,但是随着SOAP作为WebService的广泛应用,不断地增加附加的内容,使得现在开发人员觉得SOAP很重,使用门槛很高。在SOAP后续的发展过程中,增加了SOAP的成熟度,也给SOAP增加了负担。

REST

REST强调服务是以资源为中心的,对每个资源的操作都是标准化的 HTTP 方法(GET、POST、PUT以及DELETE)。而RPC强调过程(动词)有统一的接口来激发它们

Web 由各种各样的资源组成,资源由 URI 唯一标识

区别

  1. soap以操作为中心,接受xml作为输入,消息通过http传输协议发出,通过RPC调用,再返回一个xml文档。
  2. soap采用xml文档的消息体,消息的有效负载相对rest的json(当然rest也能用xml等)更少,这点soap相对更重量级。
  3. rest采用http方法(get,put,post,delete)对URI进行操作,开发简单。
  4. rest设计原则是无状态的,容易支持负载均衡。

适用场景

REST

  • 有限的带宽 json更轻量
  • 无状态性
  • 需要缓存 REST 的应用可以充分地挖掘 HTTP 协议对缓存支持的能力。当客户端第一次发送 HTTP GET 请求给服务器获得内容后,该内容可能被缓存服务器 (Cache Server) 缓存。当下一次客户端请求同样的资源时,缓存可以直接给出响应,而不需要请求远程的服务器获得。对于soap而言,SOAP 消息所使用的 URI 总是指向 SOAP 的服务器,采用缓存,缓存服务器如果不解码 SOAP 消息体,没法知道该 HTTP 请求是否是想从服务器获得数据。

SOAP

  • 安全性要求
  • 有状态的操作

REST与SOAP各有优缺点与适用场景,具体采用哪种方案要结合具体案例。

参考

http://www.ibm.com/developerworks/cn/webservices/0907_rest_soap/
http://stevenjohn.iteye.com/blog/1442776
http://blog.sina.com.cn/s/blog_4e345ce70101n0ck.html

0 0
原创粉丝点击