Rpc和http的区别

HTTP协议

        HTTP(Hypertext Transfer Protocol)是一种用于在客户端和服务器之间传输超文本数据的应用层协议。它是互联网上最常用的协议之一,被用于Web浏览器和服务器之间的通信。

        HTTP协议是无状态的,每一次请求都是独立的,服务器不会保存之前的状态信息。因此每个请求都会携带足够的信息去确保传输的正确性。客户端发一次HTTP请求,服务器接收到会返回一个响应,从而实现一次信息传输。在HTTP请求完毕后会关闭连接,坏处是导致每个请求都需要建立连接的时间开销,好处是使得服务器能够更好地处理多个并发请求。

        HTTP使用统一资源标识符(URL)或统一资源定位符(URI)来标识要请求或响应的资源,默认使用TCP/IP作为传输协议,TCP提供了可靠的连接和可靠的数据传输。

RPC协议

        RPC(Remote Procedure Call Protocol) 远程过程调用协议。它允许一个计算机程序可以调用位于另一个计算机上的函数或方法,就像调用本地的函数一样。RPC协议的设计目标是隐藏底层通信细节,并使远程调用过程对开发者透明化。

        借用图

工作原理:

        服务端要定义远程服务的接口和代码等,便于客户端以指定的端口参数信息连接到服务端。客户端通过调用本地生成的客户端代码来触发远程过程调用。客户端的代码会将调用请求序列化成一种协议可识别的数据格式,然后通过网络发送给远程服务器。客户端和服务器之间通过网络进行通信,使用如TCP/IP的传输协议来发送和接收数据。远程服务器接收到请求后,将请求进行反序列化,解析为调用服务器上实际函数或方法的参数。然后执行函数或方法,并将结果序列化后发送回客户端。客户端接收到服务端返回的结果后,将结果反序列化,解析为可使用的数据对象。

HTTP和RPC

        RPC服务主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,因此在传输层的RPC会比在应用层的HTTP效率更高。RPC通常用于构建分布式系统和服务之间的通信,它可以提供对远程服务的透明访问。它在微服务架构中广泛使用;HTTP则用于Web应用程序和浏览器之间的通信,通过GET和POST等方法实现数据的传输。由于HTTP是无状态的,因此每次客户端发送请求到服务端时都需要携带大量信息去确保访问服务端的正确性,而RPC时会在客户端和服务端建立一个会话保持连接状态信息,从而实现更高效的状态信息,此外RPC还支持异步调用,可以在不阻塞主线程的情况下处理多个请求。

        总的来说,RPC是一种更加定制化和高效的协议,专注于应用程序之间的通信,而HTTP是一种通用的协议,适用于在Web应用程序之间传输数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值