rpc与rest的差别

zhchoutai zhchoutai     2022-09-11     764

关键词:

一:RPC
RPC 即远程过程调用, 非常easy的概念, 像调用本地服务(方法)一样调用server的服务(方法).
通常的实现有 XML-RPC , JSON-RPC , 通信方式基本同样, 所不同的仅仅是数据传输的格式.
(假设你已经习惯于XML繁重的尖括号,你最好还是能够尝试下更加轻型,高效,传输效率高的 JSON.)
一个简单的通信过程通常为:
Request

<?

xml version="1.0"?

> <methodCall> <methodName>member.get_username_by_id</methodName> <params> <param> <value><i4>1</i4></value> </param> </params> </methodCall>

Response

<?

xml version="1.0"?

> <methodResponse> <params> <param> <value><string>Zhu Tao</string></value> </param> </params> </methodResponse>

向server发送一个过程调用的方法及其參数, 得到server返回的方法运行的结果.

2:REST
REST 不是一种协议,它是一种架构, 一种 Web Service 能够假设满足 REST 的几个条件, 通常就称这个系统是 Restful 的.

这里提到的条件包含:

C/S结构 (这是Internet服务的一个基本特征)
无状态 (非常熟悉吧,呵呵)
能够cache (想起了浏览器?)
分层系统 (想起了无数的架构?)
统一的接口 (假设这是可能的,程序猿有福了, :D)
code on demand(可选, 事实上是一种扩展性的要求)
看了这几个特征后,你想起了什么?

你可能会破口而出: HTTP.

我答: You got it!

HTTP是WWW的最核心的协议, 它将简单的分布于世界各个角落的资源都统一起来, 统一的地址, 简单的方法, 和一定数量的表达方式.(你可能对这三点描写叙述非常模糊,请go ahead).

REST 的三个要素是 唯一的资源标识, 简单的方法 (此处的方法是个抽象的概念), 一定的表达方式.

REST 是以 资源 为中心, 名词即资源的地址, 动词即施加于名词上的一些有限操作, 表达是对各种资源形态的抽象.

以HTTP为例, 名词即为URI(统一资源标识), 动词包含POST, GET, PUT, DELETE等(还有其他不经常使用的2个,所以 整个动词集合是有限的), 资源的形态(如text, html, image, pdf等)

三:RPC与REST的差别
假设你想仅仅记住一点,那么就请记住 RPC是以动词为中心的, REST是以名词为中心的, 此处的 动词指的是一些方法, 名词是指资源.

你会发现,以动词为中心,意味着,当你要须要加入新功能时,你必须要加入很多其他的动词, 这时候server端须要实现 相应的动词(方法), client须要知道这个新的动词并进行调用.

而以名词为中心, 假使我请求的是 hostname/friends/, 不管这个URI相应的服务怎么变化,client是无需 关注和更新的,而这样的变化对client也是透明的.

至于其他的差别,如对实现语言的依赖, 耦合性等,这些都是上面提到的这个根本差别所衍生的.

让我们回到引入部分的2个问题. 当你每天使用HTTP冲浪时,你都在使用 REST 与远程的server进行亲热接触. 当你使用Gtalk和同事朋友沟通时,你则是在享受着 RPC 的便利.

rpc接口与rest对比

参考技术ARPC,可以基于TCP协议,也可以基于HTTP协议REST,基于HTTP协议(在TCP协议之上进行封装)RPC,使用自定义的TCP协议,可以让请求报文体积更小,或者使用HTTP2协议,也可以很好的减少报文的体积,提高传输效率。REST,如... 查看详情

rpc与rest的区别

http://blog.csdn.net/u013628152/article/details/47669797 http://www.ruanyifeng.com/blog/2011/09/restful Content-Type:application/json;charset=utf-8 Accept:application/json,text/javascri 查看详情

RPC 与 JSON,为啥大家都这么炒作 REST?

】RPC与JSON,为啥大家都这么炒作REST?【英文标题】:RPCwithJSON,whydoeseveryonehypeRESTsomuch?RPC与JSON,为什么大家都这么炒作REST?【发布时间】:2016-06-0311:00:32【问题描述】:如果我有一个处理PHP应用程序的浏览器、一个PHP移动后端... 查看详情

SOAP 与 XML-RPC 或 REST 的性能

】SOAP与XML-RPC或REST的性能【英文标题】:PerformanceofSOAPvs.XML-RPCorREST【发布时间】:2010-09-1112:23:12【问题描述】:关于使用XML-RPC或REST解决方案的简单性的争论很容易理解,也很难争论。我还经常听到一些争论,即SOAP开销的增加可... 查看详情

XML-RPC 与 REST

】XML-RPC与REST【英文标题】:XML-RPCvsREST【发布时间】:2012-07-2711:19:54【问题描述】:这是一个更具理论性的问题。我即将在这里构建一个小服务器,并想为它创建一个API。我正在决定什么更好,并且已经排除了SOAP,因为在我看... 查看详情

rpc(remoteprocedurecall基于服务调用)和restful(representationalstatetransfer基于资源)通信协议异同?常见rpc和restful框架(代码片段

文章目录RPC与RESTful有什么区别?RPC与RESTful有什么相同点?基于服务调用的架构和基于资源的架构有什么区别?Java代码演示基于服务调用的SOAP示例基于资源的RESTful示例常用的RPC框架有哪些?常用的restful框架有哪... 查看详情

rpc与动态代理模型

...就是通过HTTP请求。是的,这是很常见的,例如服务B暴露Restful接口,让后让服务A调用它的接口。基于Restful的调用方式因为可读性好(服务B暴露出的是Restful接口,可读性当然好)而且HTTP可以通过各种防火墙,因此非常不错。在1... 查看详情

JSON REST/RPC 接口的 IDL

】JSONREST/RPC接口的IDL【英文标题】:IDLforJSONREST/RPCinterface【发布时间】:2012-06-0210:09:09【问题描述】:我们正在设计一个相当复杂的RESTAPI,其中大部分I/O是具有特定结构的JSON编码对象。我们发现的一个挑战是以一种使客户更容... 查看详情

GWT 应用程序中的 RPC 与 JSON 比较

...简单而有力的问题。我有一个应用程序测试,它通过RPC和REST发送1000个CustomDTO列表。我只想知道反序列化负载(在RPC中)和JSON(在REST中)需要多少时间。我的问题是我得到的时间包括:客户端时间+服务器时间+线路时间+反序 查看详情

为啥在使用 MojoX::JSON::RPC::Service 时,我的 Mojo 测试与 FF REST 客户端的工作方式不同?

】为啥在使用MojoX::JSON::RPC::Service时,我的Mojo测试与FFREST客户端的工作方式不同?【英文标题】:WhyismyMojotestworkingdifferentlythantheFFrestclientwhenusingMojoX::JSON::RPC::Service?为什么在使用MojoX::JSON::RPC::Service时,我的Mojo测试与FFREST客户端... 查看详情

gwt-rpc vs rest ......真的是其中之一吗?

】gwt-rpcvsrest......真的是其中之一吗?【英文标题】:gwt-rpcvsrest...isitreallyoneortheother?【发布时间】:2013-07-0819:53:12【问题描述】:我有一个使用GWT-RPC调用我的REST服务的GWT客户端。为什么其中一些cmets将GWT-RPC与REST相提并论,就好... 查看详情

对外提供服务的几种方式

...据格式不同。????2SOA:面向服务的架构(面向消息)????3REST:表现层状态转移(面向资源)。?RPC与REST的区别????1RPC以动词为中心,REST以名词为中心。????2RPC服务端需要实现新增动词的方法,客户端也需要知道并进行调用;RES 查看详情

什么是rpc?什么是restful?它们有什么区别?

RPC远程过程调用(RemoteProcedureCall,RPC)框架作为架构微服务化的基础组件,能大大降低架构微服务化的成本,提高服务调用方与服务提供方的开发效率,屏蔽跨进程调用函数(服务)的各类复杂细... 查看详情

python实战之用内置模块来构建rest服务rpc服务(代码片段)

...文涉及内容包括:TCP/UDP服务构建不使用框架创建一个REST风格的web服务基于XML-RPC实现简单的RPC基于multiprocessing.connection实现简单的RPCpython实现作为客户端与HTTP服务交互理解不足小伙伴帮忙指正傍晚时分 查看详情

python实战之用内置模块来构建rest服务rpc服务(代码片段)

...文涉及内容包括:TCP/UDP服务构建不使用框架创建一个REST风格的web服务基于XML-RPC实现简单的RPC基于multiprocessing.connection实现简单的RPCpython实现作为客户端与HTTP服务交互理解不足小伙伴帮忙指正傍晚时分 查看详情

rpc好,还是restful好?

...到知乎上有这样一个问题WEB开发中,使用JSON-RPC好,还是RESTfulAPI好?还有其他优秀的推荐方案吗?-----------------------------------------------------------------先科普一下REST和RESTful什么区别?REST,即RepresentationalStateTransfer的缩写。翻译过... 查看详情

基于rest服务实现的rpc

...很多了,比喻Motan和Dubbo,但是今天我这里提供一种基于Rest服务的Rpc。和上一篇连着的http://www.cnblogs.com/LipeiNet/p/5856414.html1:原理首先我们要建立一个Rest服务,如果其他应用程序想要获取这个服务的资源就只需要一个URI就可以了... 查看详情

简答题

 RESTful调用和 RPC调用有什么区别?如果让你设计一个RPC服务治理框架你会设计那些模块?是否了解过ServiceMesh,如果了解ServiceMesh是用来解决什么问题的?1、RESTful是一种软件架构风格,用于约束客户端和服务器交互,满... 查看详情