浅谈restful webservice SOAP webservice

2020腾讯云双十一活动,全年最低!!!(领取3500元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1074

【阿里云】双十一活动,全年抄底价,限时3天!(老用户也有),
入口地址https://www.aliyun.com/1111/home

推荐:SOAP webserivce 和 RESTful webservice 对比及区别

[简单对象访问协议(Simple Object Access Protocol,SOAP)是一种基于 XML 的协议,可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传

为了说明这个问题,必须的纠正一下我们对HTTP的认识。

首先回顾一下OSI七层模型

OSI(Open System Interconnection,开放系统互连)七层模型

7 应用层 

6 表示层 

5 会话层 

4 传输层 

3 网络层 

2 数据链路层 

1 物理层 


HTTP并不是一种传输层的“传输协议”(第四层),而是一种应用层的“转移协议”(最高层)。
SOAP类型的WebService就是最好的例子,SOAP消息完全就是将Http协议作为消息承载,
以至于对于Http协议中的各种参数(例如编码,错误码等)都置之不顾。
 其实,它有着非常丰富的语义,Http协议所抽象的get,post,put,delete就好比数据库中最基本的增删改查,而互联网上的各种资源就好比数据库中的记录。

restful webservice

Rest(Representional state transfer)
WEB的在世界范围类的普及和成功,人们从技术角度对它的总结,既--分布式架构,注意强调的是架构风格-architectural style.
是一种全新的Web开发思维方式, 一种基于Http协议来资源操作的思想,是基于URI来设计系统的架构。
那么它的特点主要由以下五点
1.面向资源(resource)
2.每个资源都对应唯一的URI uniform resource identifier
3.抽象资源的操作,使用通用连接接口来操作资源 (generic connector interface)
4.对资源的操作不会改变URI
5.所有的操作无状态 (stateless)
可以看出REST 抽象资源的操作跟HTTP 不谋而合,将Http协议的设计初衷作了诠释。


SOAP/WSDL webservice 
为了包装RPC(Remote Procedure Call) 的请求信息,推出了XML-RPC,但XML-RPC只能使用有限的数据类型种类和一些简单的数据结构。
于是就出现了SOAP
SOAP(Simple Object Access Protocol) 是基于 XML 的结构化数据交换。SOAP可以和多种传输协议绑定(Binding),如包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)使用底层协议交换信息,如: HTTP。

理论上,SOAP就是一段xml,你可以通过HTTP,SMTP等发送它(复制到软盘上,叫快递公司送去也行)。

SOAP跟HTTP 的关系

SOAP在HTTP协议的基础之上,一个基于XML的协议。即HTTP + XML = SOAP或者说 SOAP方式是一个遵照SOAP编码规则的HTTP请求/响应。

推荐:Web Service进阶(七)浅谈SOAP Webservice和RESTful Webservice

[浅谈SOAP Webservice和RESTful Webservice      REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性。

WSDL

WSDL是基于SOAP通信时的描述语言,WSDL是用来描述SOAP的,也是一段xml。

那么,我们可以从以下几个方面去比较它们的优劣

1.成熟,规范

SOAP 比REST 成熟,规范,受到很多厂商的支持,REST 只是提供了思想,所以大家还处在各自为战的局面。

2.伸缩性

 REST 是基于HTTP协议实现资源操作,大大的降低了开发复杂度和伸缩性。

3.效率,易用

SOAP根据需求在不断的扩展协议的内容,导致处理性能下降,学习成本上升。而REST 采用 ROA(Resource-Oriented Architecture,面向资源的体系架构)进行设计并且融合WEB2.0前端技术,提高了开发效率。

4.安全性

SOAP 采用XML-Security和XML-Signature两个规范组成了WS-Security来实现安全控制,REST 目前没有任何说明。



推荐:浅谈WebService SOAP、Restful、HTTP(post/get)请求

[Webservice 两种实现方式跟HTTP(post/get) 直接请求各个优缺点,以及如何判断选择使用哪一种。]

相关推荐