REST与RPC有什么区别?

对于异构服务(后台用的是JAVA和PHP写的,要相互调用数据)
用哪一种比较好一些?

阅读 25.1k
5 个回答

个人见解,不一定对
REST API 和 RPC 都是把一个个函数封装成接口暴露出去,以供调用
不过 REST API 一般都是基于 HTTP 协议,而 RPC 则可以不基于 HTTP

因此,如果是后端两种语言互相调用,用 RPC 可以获得更好的性能(省去了 HTTP 报头等一系列东西),应该也更容易配置
如果是前端通过 AJAX 调用后端,那么用 REST API 的形式比较好(因为无论如何也避不开 HTTP 这道坎)

RPC,即远程过程调用,我们可以通过socket、http、操作系统自带的管道等技术来实现对于远程程序的调用。
REST是web service一种方式,我们可以将其归在http协议的RPC中,当然web service还有一种实现方式就是soap。
REST致力于通过http协议中的POST/GET/PUT/DELETE等方法和一个可读性强的URL来提供一个http请求,soap致力于通过wsdl数据格式(一种xml数据格式)来实现通信。

REST API自描述更强一些(前提是你对HTTP了解);RPC一般来说,性能更好(你可以采取更底层的协议来实现)

我的理解:REST是一套规范,是表现形式,RPC是一种机制,不是同一回事。

REST服务,后面数据支撑可以用rpc实现。

宣传栏