(转帖)RPC和Http有什么区别??

RPC:Remote Procedure Call远程过程调用协议,目标是是让开发人员在进行远程方法调用的时候 ,就像调用本地方法一样,不 需要去额外完成这个交互去做过多的编码。所以为了达到这个目的,就有了这样一个RPC模型。Client stub它是作为客户端的一个存根,去代理客户端的请求,然后通过pack做序列化,最后通过远程通信协议,把序列化的数据传输到服务器上。注意,这里用到了远程通信协议,这个远程通信协议既可以使用TCP协议去传输,也可以使用HTTP协议去传输。所以,通过这个一个模型,就实现了RPC这样一个目标:让开发人员在没有任何感知的情况下,去实现远程方法调用。

HTTP协议是为了Web浏览器和Web服务器之间的通信去 设计的一个通信协议,它的底层仍然采用TCP协议传输,而在TCP协议之上自己定义了通信报文的一个规范。我们可以使用HTTP协议来实现跨网络节点的数据传输。所以,这就是这两个协议的一个特点。

        所以,通过这个的一个分析,我们发现:RPC协议并不是一个通信协议,HTTP协议才是通信协议。而RPC协议定义的是一个远程过程调用协议,它的底层通信去实现数据传输,它得依赖一一些成熟的通信协议,比如HTTP协议,甚至我们可以直接去在TCP协议之上去做自定义的报文协议,这些都可以。所以我才在前面说,RPC和Http这两个并不是同一个维度的协议,这两者并没有可比性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值