RESTful和SOAP、RPC 了解一下

最近在项目中涉及到RESTful,不是很了解,项目结束回过头学习一下,顺带看一看SOAP和RPC。



先来了解一下他们三个到底是什么?

  1. REST ( REpresentational State Transfer ),State Transfer 为 "状态传输" 或 "状态转移 ",Representational 中文有人翻译为"表征"、"具象",合起来就是 "表征状态传输" 或 "具象状态传输" 或 "表述性状态转移"。
    推荐阅读:RESTful入门介绍
  2. SOAP 是基于 XML 的简易协议,可使应用程序在 HTTP 之上进行信息交换。一种数据交换协议规范,是一种轻量的、简单的、基于XML的协议的规范。它有什么优点?简单总结为: 易用,灵活,跨语言,跨平台
  3. RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。


了解完我们看下他们用法?

REST主要原则:网络上的所有事物都被抽象为资源,每个资源都有一个唯一的资源标识符,同一个资源具有多种表现形式(xml,json等),对资源的各种操作不会改变资源标识符,所有的操作都是无状态的,符合REST原则的架构方式即可称为RESTful。
RESTful用法
http://127.0.0.1/user/1 GET 根据用户id查询用户数据
http://127.0.0.1/user POST 新增用户
http://127.0.0.1/user PUT 修改用户信息
http://127.0.0.1/user DELETE 删除用户信息



SOAP:首先需要理解就是SOAP偏向于面向活动,有严格的规范和标准,包括安全,事务等各个方面的内容,同时SOAP强调操作方法和操作对象的分离,有WSDL文件规范和XSD文件分别对其定义。
SOAP用法菜鸟教程SOAP实例

总的来说:REST可以看着是http协议的一种直接应用,默认基于json作为传输格式,使用简单,学习成本低效率高,但是安全性较低,而SOAP可以看着是一个重量级的协议,基于xml,SOAP在安全方面是通过使用XML-Security和XML-Signature两个规范组成了WS-Security来实现安全控制的,当前已经得到了各个厂商的支持,.net ,php ,java 都已经对其有了很好的支持 。这是REST薄弱的地方。

原文地址:http://blog.51cto.com/13689068/2094668

时间: 2024-10-11 10:11:42

RESTful和SOAP、RPC 了解一下的相关文章

restful webservice SOAP webservice

为了说明这个问题,必须的纠正一下我们对HTTP的认识. 首先回顾一下OSI七层模型 OSI(Open System Interconnection,开放系统互连)七层模型 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 HTTP并不是一种传输层的"传输协议"(第四层),而是一种应用层的"转移协议"(最高层). SOAP类型的WebService就是最好的例子,SOAP消息完全就是将Http协议作为消息承载, 以至于对于Http

spring集成cxf发布restful和soap接口

对于SOAP Webservice和Restful Webservice的选择问题,首先需要理解就是SOAP偏向于面向活动,有严格的规范和标准,包括安全,事务等各个方面的内容,同时SOAP强调操作 方法和操作对象的分离,有WSDL文件规范和XSD文件分别对其定义.而REST强调面向资源,只要我们要操作的对象可以抽象为资源即可以使用REST架 构风格. application-context-cxf.xml <?xml version="1.0" encoding="UT

Python面试题目--汇总

原文链接-https://github.com/taizilongxu/interview_python Python语言特性 1 Python的函数参数传递 2 Python中的元类(metaclass) 3 @staticmethod和@classmethod 4 类变量和实例变量 5 Python自省 6 字典推导式 7 Python中单下划线和双下划线 8 字符串格式化:%和.format 9 迭代器和生成器 10 *args and **kwargs 11 面向切面编程AOP和装饰器

Python语言及操作系统等《转》

转自:https://github.com/taizilongxu/interview_python Python语言特性 1 Python的函数参数传递 2 Python中的元类(metaclass) 3 @staticmethod和@classmethod 4 类变量和实例变量 5 Python自省 6 字典推导式 7 Python中单下划线和双下划线 8 字符串格式化:%和.format 9 迭代器和生成器 10 *args and **kwargs 11 面向切面编程AOP和装饰器 12

Python语言特性

Python语言特性 1 Python的函数参数传递 看两个例子: Python 1 2 3 4 5 a = 1 def fun(a): a = 2 fun(a) print a  # 1 Python 1 2 3 4 5 a = [] def fun(a): a.append(1) fun(a) print a  # [1] 所有的变量都可以理解是内存中一个对象的"引用",或者,也可以看似c中void*的感觉. 这里记住的是类型是属于对象的,而不是变量.而对象有两种,"可更

webservice restful rpc

webservice: 上世纪90年代流行的分布式技术,如DCOM,CORBA,RMI,范式是RPC,但各系统数据类型不一致,实现/调用机制不同,各系统间互通不可能.XML的出现,让数据类型一致了,SOAP的出现,让各系统可以相互调用了.Simple Object Access Protocol的原意是XML-RPC,但人们很快就发现方法调用太狭隘,而消息传递更加通用.WSDL即支持rpc/encoded也支持document/literal,但前者已成为历史遗留.webservices是soa

透析SOA、RPC、SOAP、REST、ICE、ESB模型发展史

最初的程序全是单机程序,没有网络,没有RPC,更没有RESTful.程序猿写的东西孤独运行在单机上. 那时的程序猿们语言相通,参与开发同一套系统的团队可以面对面沟通. 网络出现了.网络,也带来变乱.网络是不同系统之间的通信,无论是早期网络,还是web,如何实行系统间的互联互通是个头痛的问题. 而SOA就是一种思想,就是把项目拆成组件,每个组件暴露出服务,"你调我,我调你",大家一起把活干完.强调的是服务的相互调用. SOA SOA:面向服务的软件架构(Service Oriented

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

HTTP-GET 和 HTTP-POST HTTP-GET和HTTP-POST是标准协议,他们使用HTTP(超文本传输协议)谓词(谓词是指条件表达式的求值返回真或假的过程.)对参数进行编码并将参数作为名称/值对传递,还使用关联的请求语义.每个协议都包含一系列HTTP请求标头,HTTP请求标头及其他一些信息定义客户端向服务器请求哪些内容,哪个服务器用一系列HTTP响应标头和所请求的数据进行响应. HTTP-GET 使用 MIME 类型 application/x-www-form-urlencod

SOA,Webservice,SOAP,REST,RPC,RMI,JMS的区别与联系(转载)

原文地址:http://blog.csdn.net/pcceo1/article/details/51245249 SOA面向服务的软件架构(Service Oriented Architecture) 是一种计算机软件的设计模式,主要应用于不通应用组件中通过某种协议来互操作 它的基本设计原理是:服务提供了一个简单的接口,抽象了底层的复杂性,然后用户可以访问独立的服务,而不需要去了解服务底层平台实现. 正因为SOA架构实现不依赖于技术,因此能够被各种不同的技术实现. 例如: SOAP, RPC