Restful 和 RPC 是什么关系,有啥区别

 我来答
huanglenzhi
2016-02-18 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517163
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  这两个不是互斥的,HTTP是不是RPC完全取决于client的具体形式。传统的RPC一般是基于二进制协议的,client发个二进制包过来(然后阻塞),server处理完回复一个包,client收到后醒来。在二进制协议中一般可以在包中加个id来指明回复和请求的对应关系,这样我们就能在一个tcp连接上同时发起多个请求和回复。HTTP这种文本协议也可以加id,但由于一些原因(Content-Length可能缺失),即使加了id也做不到一个连接上同时传多个HTTP消息,所以HTTP协议一般会和server保持多个连接,每个连接上同时最多只有一个HTTP消息。此种”连接池“方式即为HTTP中的”Keep-alive“。所以即使在HTTP上(或任何协议上),我们仍然可以做到高效地发送一个请求过去,阻塞,等待server处理完后,再醒来。这不就是RPC么。所以这儿的选择更多是平衡功能和性能。一般来说,面向终端用户的尽量用Restful HTTP。原因是认知广,直观,编程语言都支持HTTP(包括shell,这样调试起来方便),性能不是那么重要,方便用户share链接。而面向内部系统的话如果机器不多也可以考虑用Restful HTTP,如果机器很多还是尽量用二进制的RPC吧,毕竟性能差距还是很大的。
尚学堂科技有限公司
2018-06-28 · 百度知道合伙人官方认证企业
尚学堂科技有限公司
北京尚学堂科技有限公司是一家从事JAVA、大数据、web前端、网络在线教育、互联网架构师、Android、ios技术开发、咨询为一体的软件公司。公司由海外留学人员和国内IT人士创建。
向TA提问
展开全部
REST (REpresentation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应...
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式