Http协议和Rpc协议有什么区别?

本文探讨了Http协议和RPC协议在功能、实现和应用层面上的区别,指出Http是一个成熟的应用层协议,而RPC是规范,如Dubbo和gRPC是其实现。两者都可用于服务通信,但gRPC基于HTTP/2,提供了更高级特性。
摘要由CSDN通过智能技术生成

从三个层面:

一、功能层面

Http协议:是应用层的的超文本传输协议,万维网数据传输通信的一个基础,
主要在于网页端和服务端之间一个数据传输上。

PRC协议:是一个 远程过程调用协议,它是定位在实现(不同计算机应用之间)的一个数据通信,屏蔽了通信的底层复杂度,让我们的开发者,能够像调用本地服务一样,去完成远程服务的一个调用,

因此,这两个协议,在定位层面,他是完全不同的

二、 实现层面:

Http协议:它是一个已经实现,并且成熟的应用层协议,它定义了通信报文的一些格式

像: Request Body、Request Header、Response Body、Response Header

 

符合这样一个协议特征的 通信协议,才是Http协议

RPC协议: RPC只是通信协议的一个规范,它并没有具体的实现,只有按照RPC通信协议规范,去实现的通信框架,才是协议真正具体的一个实现。

比如像:Dubbo、grpc.....都是高性能远程过程调用的框架。

因此,我们在实现RPC框架的时候, 自定义报文通信的一个协议规范和自定义序列化方式,或者自定义网络通信通信协议的类型等等。

 三、应用层面:

Http协议实现了RPC协议的框架,都能够去实现跨网络节点之间的一些服务通信。
并且他们底层 都使用了一个TCP协议作为通信基础,但是由于RPC协议只是一种标准协议,我们只需要符合RPC协议的这个框架,都属于RPC框架
因此,RPC网络通信协议层呢,也可以使用http协议来去实现,例如:grpc、OpenFeign,它底层都采用了http协议,作为一个通信的基础

 知识补充:

Dubbo是阿里巴巴公司开源的一个Java高性能优秀的服务框架。它使得应用可以通过高性能的RPC实现服务的输出和输入功能,具有良好的可扩展性和灵活性。Dubbo可以与Spring框架无缝集成,支持多种协议,包括Dubbo协议、REST协议和gRPC协议等。Dubbo提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

gRPC则是由Google开发的高性能、通用的开源RPC框架。它主要面向移动应用开发,并基于HTTP/2协议标准设计。gRPC使用Protocol Buffers(ProtoBuf)作为接口定义语言(IDL),支持多种开发语言,并具有高效的序列化和反序列化性能、双向流和流控制等特性,非常适合在分布式系统中使用。它可以高效地连接数据中心内和跨数据中心的服务,支持负载平衡、跟踪、运行状况检查和身份验证。

 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值