RPC 与 HTTP 区别
1. 前言
网上很多博客都是在说HTTP
与RPC
采取不同的协议,RPC
所传输的数据是经过压缩的二进制数据,但是HTTP
协议同样支持gzip
压缩算法。其次,另一个说法就是HTTP
的报头所占的有太多无效信息,但是20-60
字节的首部长度会对业务有很大影响吗?以现阶段计算机处理及网络传输速度,应该并无影响。这也是我在网上所看到大部分的答案,之前也一直被这个带偏,直到一次面试被指正。
2. 正文
首先需要声明的是RPC
与HTTP
并不位于同一层面,两者的概念截然不同,RPC
远程方法调用,即一个应用调用另一个应用的接口。
如何在一个应用中调用另一个应用?可以通过HTTP
协议,也可以通过自定义的TCP
协议实现通信。最终实质上完全相同,都是通过Socket
解析调用方的参数,最后再将处理结果通过Socket
传输。
所以,RPC
是如何实现服务间的通信,而HTTP
可以视为服务间通信采取的数据传输格式,如一个美国人要和日本人交流,他们彼此之间交流可以通过一个中国人,美国人要表达的信息告诉中国人,中国人在将其翻译成日语告诉日本人。在这三者中,美国人、日本人便是两个应用进程,而中国人可以视作HTTP
协议。当然,你也可以使用其他国的人