一、简介
(1)HTTP(Hypertext Transfer Protocol)是一种应用层协议。它经常用于在Web和服务器之间通讯,或服务与服务之间通讯。
(2)RESTFul 约束HTTP协议实现上的规范设计。
(3)RPC(Remote Procedure Call)远程过程调用方法。它经常用于服务与服务之间通讯。当前服务调用其他服务时,能够像调用函数一样。
RPC的实现可以基于TCP协议,也可以基于HTTP协议。
在基于TCP协议的情况下,服务的调用方和提供方需要建立Socket连接,然后调用方通过Socket将需要调用的接口名称、方法名称和参数序列化后传递给提供方。
http是TCP的上层协议
二、对于我自己理解
HTTP是协议
、RESTFul是规范
、RPC是具体方法
。
协议用来定义规则、规范用来约束实现,方法用来具体调用
三、落地案例
Spring Cloud 的OpenFeign 就是RPC的实现,采用http协议,使用RESTFul规范约束
Dubbo 就是RPC的实现,采用TCP
TCP比http更靠近底层协议,冗余东西更少,性能也就更好