http、soap和rest的比较

由于被问到rest和http区别,rest是协议吗?懵逼了。。。花了一部分时间学习了下,记录下来,以供不时之需,有理解不到位的望留言告知,再此,多谢。。。。

废话不多说正文开始。。。

 

http是标准超文本传输协议使用对参数进行编码并将参数作为键值对传递,还使用关联的请求语义。每个协议都包含一系列HTTP请求标头及其他一些信息,定义客户端向服务器请求哪些内容,服务器用一系列HTTP响应标头和所请求的数据进行响应。HTTP-GET 使用 MIME 类型application/x-www-form-urlencoded(将追加到处理请求的服务器的 URL 中)以 URL 编码文本的形式传递其参数。 URL 编码是一种字符编码形式,可确保传递的参数中包含一致性文本,例如将空格编码为 %20,其它符号转换为%XX,其中XX为该符号以16进制表示的ASCII(或ISOLatin-1)值。 追加的参数也称为查询字符串;HTTP-POST参数也是 URL 编码的,但是,键/值对是在实际的 HTTP 请求消息内部传递的,而不是作为 URL 的一部分进行传递。


SOAPSimple Object AccessProtocol)简单对象访问协议它是轻型协议,用于分散的、分布式计算环境中交换信息。SOAP有助于以独立于平台的方式访问对象、服务和服务器。它借助于XML,提供了HTTP所需的扩展。

SOAP协议规范由4个主要的部分组成。

第一部分:SOAP封装(Envelop)定义了一个的框架(描述消息的内容多少、谁发送、谁应当接受、处理,以及如何处理它们)。

第二部分:SOAP编码规则(Encoding Rules)定义了可选数据编码规则,用于表示应用程序定义的数据类型和直接图表,以及一个用于序列化非语法数据模型统一标准。

第三部分:SOAP RPC表示(RPC Representation)定义一个远程调用风格(请求/响应)信息交换的模式。

第四部分:SOAP绑定(Binding)定义了SOAPHTTP之间的绑定和使用底层协议的交换。

SOAP协议可以简单地理解为:SOAP=RPC+HTTP+XML,即采用HTTP作为通信协议,RPCRemote Procedure Call Protocol - 远程过程调用协议)作为一致性的调用途径,XML作为数据传送的格式,从而允许服务提供者和服务客户经过防火墙在Internet上进行通信交互。


REST(Representational State Transfer)一种轻量级的Web Service架构。可以完全通过HTTP协议实现。其实现和操作比SOAPXML-RPC更为简洁,还可以利用缓存Cache来提高响应速度,性能、效率和易用性上都优于SOAP协议。
REST
架构对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GETPOSTPUTDELETE方法

 

SOAP与HTTP的区别

web service相对http(post/get)由于要进行xml解析,速度可能会有所降低。 

web service完全可以被http(post/get)替代。


Restful与SOAP的区别

安全性:SOAP会好于restful

效率和易用性(REST更胜一筹)

成熟度(总的来说SOAP在成熟度上优于REST)

 


你可能感兴趣的:(综合技术)