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相当于方言。

相关文章
|
2月前
|
缓存 安全 网络协议
一起深入了解http和https的区别
HTTP适合于非敏感信息的传输,而HTTPS则是在要求安全性、隐私保护及信任机制的现代互联网环境中不可或缺的标准配置。随着网络安全意识的提高和技术的发展,越来越多的网站和服务都转向使用HTTPS,力求在提供便捷服务的同时保障用户数据的安全。HTTPS将成为未来的基本选择。
52 0
一起深入了解http和https的区别
|
2月前
|
安全 网络协议 算法
http和https的区别有哪些
http和https的区别有哪些
|
15天前
|
网络协议 安全 数据安全/隐私保护
Socks5代理和HTTP代理的区别在哪里?
Socks5和HTTP代理是两种IP代理方式,分别基于Socks5及HTTP协议。Socks5支持TCP/UDP,适合P2P、游戏和流媒体,提供传输层身份验证。HTTP代理仅支持HTTP,适用于Web浏览控制和内容过滤。选择代理应根据实际需求,如需高速低延迟选Socks5,需访问控制选HTTP。
|
2天前
|
网络协议 网络安全 程序员
socket,tcp,http三者之间的原理和区别
socket,tcp,http三者之间的原理和区别
socket,tcp,http三者之间的原理和区别
|
4天前
|
安全 网络协议 网络安全
干货|代理IP协议有何区别?深入了解 SOCKS5、HTTP 代理
HTTP和HTTPS是互联网主要的两大协议,HTTP是基础的简单请求-响应协议,常用于TCP上,但数据传输不安全。HTTPS是HTTP的安全版本,添加了SSL层进行加密和身份验证,提供更高的安全性,用于保护数据和验证网站真实性。HTTPS需CA证书,可能产生费用,并使用443端口而非HTTP的80端口。
|
4天前
|
网络协议 安全 数据安全/隐私保护
干货|代理IP协议有何区别?深入了解 SOCKS5、HTTP 代理
SOCKS5和HTTP是两种代理协议,前者是通用型,支持多种网络流量,提供身份验证、IPv6支持及UDP兼容性,更适合实时数据传输。HTTP代理专用于HTTP协议,适用于Web资源请求。SOCKS5在传输方式、功能、兼容性和安全性上更胜一筹,而HTTP代理则在处理HTTP请求时更专业。选择代理协议应根据需求和应用场景,考虑服务的稳定性和安全性。付费代理如kookeey全球代理,支持双协议,速度快且可扩展性强,是可靠的选择。
|
17天前
|
安全 网络协议 网络安全
Socks5代理与HTTP代理的区别与优劣
在互联网时代,隐私和安全至关重要,代理服务器如socks5和HTTP代理成为保护个人信息的工具。socks5代理支持多种网络流量和UDP协议,更具灵活性和通用性,但设置复杂;HTTP代理则更常见、易用,适合仅处理HTTP流量的场景,但限制较多。选择哪种代理取决于具体需求和应用场景。
|
25天前
|
网络协议 网络安全 数据安全/隐私保护
http和https的区别!
http和https的区别!
|
25天前
|
网络协议 Linux Windows
TCP/IP、Http、Socket之间的区别
TCP/IP、Http、Socket之间的区别
|
27天前
|
安全 网络协议 前端开发
< 了解 HTTP 这一篇就够了 :什么是 HTTP ?HTTP 和 HTTPS 有什么区别 ? >
在前端开发中,是和浏览器打交道最为频繁的行业之一。但是大部分卷王们,可能仅仅是知道如何使用浏览器,只是知道 URL 跳转到浏览器变成一个完整的网页。 本篇文章将讲述 什么是HTTP、 HTTP 和 HTTPS的区别 及 URL 是如何渲染到页面。 那么到这里,肯定会有人问: 那我们为什么要学习这个呢 ? 问得好,这个分为两方面: 一是学习上述内容,能够厚实我们的理论基础。有些内容,虽然用的不多,但是技多不压身,道理懂吧? 二是学习这个,对我们后续的性能优化、排查浏览器上某些错误 的能力都有提升!
< 了解 HTTP 这一篇就够了 :什么是 HTTP ?HTTP 和 HTTPS 有什么区别 ? >