- 从功能特性来说。http是一个属于应用层的超文本传输协议,是万维网数据通信的基础,主要服务在网页端和服务端的数据传输上。RPC是一个远程过程调用协议,它的定位是实现不同计算机应用之间的数据通信,屏蔽通信底层的复杂性,让开发者就像调用本地服务一样完成远程服务的调用。因此,这两个协议在定位层面就完全不同。
- 从实现原理来说。http协议是一个已经实现并且成熟的应用层协议,它定义了通信的报文格式Request Body和Request Header,以及Response Body 和Response Header。也就是说,符合这样一个协议特征的通信协议,才是http协议。RPC只是一种协议的规范,它并没有具体实现,只有按照RPC通信协议规范实现的通信框架,也就是RPC框架,才是协议的具体实现,比如
Dubbo
、gRPC
等。因此,我们可以在实现RPC框架的时候,自定义报文通信的协议规范、序列化方式、网络通信协议的类型等等。因此,从这个层面来说,http是成熟的应用协议,而RPC只是定义了不同服务之间的通信规范。 - 从应用层面来说,http协议和实现了RPC协议的框架都能够实现跨网络节点的服务之间通信,并且他们底层都是使用TCP协议作为通信基础。由于RPC 只是一种标准协议,只要符合RPC协议的框架都属于RPC框架。因此,RPC的网络通信层也可以使用HTTP协议来实现,比如
gRPC
、OpenFeign
底层都采用了http协议。
02-03
377
10-28
3036
07-08
3560
11-25
2771
10-17
2069