PRC和HTTP(rest)过程的区别

简介: PRC和HTTP(rest)过程的区别

N.1 HTTP和RPC的介绍

HTTP 与 RPC 的关系就好比国际化与地方化的关系(可以认为标准的国际拳击手和随意的自由拳击手)。

要进行跨企业服务调用时,往往都是通过 HTTP API, 虽然效率不高,但是通用,没有太多沟通的学习成本。但是在企业内部还是 RPC 更加高效,因为http学习的成本实在是太高了。

注:PRC和PRC协议 不是同一个意思 ,PRC是一个过程,而实现PRC的协议有很多,可以是tcp或http协议。而HTTP也类似PRC,但他是基于HTTP协议。

N.2 RPC-Api与HTTP-Api

————————————————————————

————————————————————————

两种风格的API区别,总结一下其实非常简单:

(1)RPC-api面向过程,只发送 GET 和 POST 请求。GET用来查询信息,其他情况下一律用POST。请求参数是"动词",直接描述动作本身。当然RPC不仅仅是一种API设计风格,它的概念比这要广得多,就不一介绍。

(2)RESTful-api面向资源(http使用的是RESTful,需要注意的是http协议的框架就是rest框架。

。),使用 POST、DELETE、PUT、GET 请求,分别对应增、删、改、查操作。请求参数是"名词",这个名词就是“增删改查”想要操作的对象。

N.3 RPC与HTTP的不同点

在HTTP和RPC的选择上,可能有些人是迷惑的,主要是因为,有些RPC框架配置复杂,如果走HTTP也能完成同样的功能,那么为什么要选择RPC,而不是更容易上手的HTTP来实现了。

本文主要来阐述HTTP和RPC的异同,让大家更容易根据自己的实际情况选择更适合的方案。

1)传输协议

RPC,可以基于TCP协议,也可以基于HTTP协议

HTTP,基于HTTP协议(在TCP协议之上进行封装)

2)传输效率

RPC,使用自定义的TCP协议,可以让请求报文体积更小,或者使用HTTP2协议,也可以很好的减少报文的体积,提高传输效率HTTP,如果是基于HTTP1.1的协议,请求中会包含很多无用的内容,如果是基于HTTP2.0,那么简单的封装以下是可以将http作为一个RPC来使用的,这时标准RPC框架更多的是服务治理 。

3)性能消耗,主要在于序列化和反序列化的耗时

RPC,可以基于thrift实现高效的二进制传输

HTTP,大部分是通过json来实现的,字节大小和序列化耗时都比thrift要更消耗性能

当然 还有别的区别 这里 就不一样说明。

4)总结:

RPC主要用于公司内部的服务调用,性能消耗低,传输效率高,服务治理方便。

HTTP主要用于对外的异构环境,浏览器接口调用,APP接口调用,第三方接口调用等。

5)既然两种方式都可以实现远程调用,我们该如何选择呢?

(1)速度来看,RPC要比http更快,虽然底层都是TCP,但是http协议的信息往往比较臃肿,不过可以采用gzip压缩。

(2)难度来看,RPC实现较为复杂,http相对比较简单

(3)灵活性来看,http更胜一筹,因为它不关心实现细节,跨平台、跨语言。

因此,两者都有不同的使用场景:

(4)如果对效率要求更高,并且开发过程使用统一的技术栈,那么用RPC还是不错的。

(5)如果需要更加灵活,跨语言、跨平台,显然http更合适微服务,更加强调的是独立、自治、灵活。而RPC方式的限制较多,因此微服务框架中,一般都会采用基于Http的Rest风格服务 。

http就相当于是普通话,rpc相当于方言。

相关文章
|
1月前
|
缓存 安全 网络协议
一起深入了解http和https的区别
HTTP适合于非敏感信息的传输,而HTTPS则是在要求安全性、隐私保护及信任机制的现代互联网环境中不可或缺的标准配置。随着网络安全意识的提高和技术的发展,越来越多的网站和服务都转向使用HTTPS,力求在提供便捷服务的同时保障用户数据的安全。HTTPS将成为未来的基本选择。
41 0
一起深入了解http和https的区别
|
1月前
|
安全 网络协议 算法
http和https的区别有哪些
http和https的区别有哪些
|
1天前
|
安全 网络协议 网络安全
Socks5代理与HTTP代理的区别与优劣
在互联网时代,隐私和安全至关重要,代理服务器如socks5和HTTP代理成为保护个人信息的工具。socks5代理支持多种网络流量和UDP协议,更具灵活性和通用性,但设置复杂;HTTP代理则更常见、易用,适合仅处理HTTP流量的场景,但限制较多。选择哪种代理取决于具体需求和应用场景。
|
9天前
|
网络协议 网络安全 数据安全/隐私保护
http和https的区别!
http和https的区别!
|
9天前
|
网络协议 Linux Windows
TCP/IP、Http、Socket之间的区别
TCP/IP、Http、Socket之间的区别
|
1月前
|
缓存
HTTP协议中,GET和POST有什么区别?分别适用什么场景?
HTTP协议中,GET和POST有什么区别?分别适用什么场景?
36 0
|
1月前
|
存储 Java 关系型数据库
http和https的区别是什么? (1)
http和https的区别是什么? (1)
39 1
|
1月前
|
JSON 安全 算法
HTTP与HTTTPS的区别
HTTP与HTTTPS的区别
|
3月前
|
缓存 安全 数据安全/隐私保护
HTTP协议中,GET和POST有什么区别?分别适用什么场景?
HTTP协议中,GET和POST有什么区别?分别适用什么场景?
20 0
|
3月前
|
存储 安全 网络安全
HTTP与HTTPS的区别:安全性、协议地址和默认端口等比较
HTTP与HTTPS的区别:安全性、协议地址和默认端口等比较
162 0