RPC 与 HTTP 区别_baburwang的博客-CSDN博客_rpc与http的区别


本站和网页 https://blog.csdn.net/wang_zhao_/article/details/107832341 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

RPC 与 HTTP 区别_baburwang的博客-CSDN博客_rpc与http的区别
RPC 与 HTTP 区别
baburwang
于 2020-08-06 10:45:18 发布
4783
收藏
52
分类专栏:
系统设计
文章标签:
RPC
HTTP
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wang_zhao_/article/details/107832341
版权
系统设计
专栏收录该内容
1 篇文章
0 订阅
订阅专栏
RPC 与 HTTP 区别
1. 前言2. 正文3. HTTP 既然也是 RPC 的一种实现?为什么公司还要自研 RPC 框架?
1. 前言
       网上很多博客都是在说HTTP与RPC采取不同的协议,RPC所传输的数据是经过压缩的二进制数据,但是HTTP协议同样支持gzip压缩算法。其次,另一个说法就是HTTP的报头所占的有太多无效信息,但是20-60字节的首部长度会对业务有很大影响吗?以现阶段计算机处理及网络传输速度,应该并无影响。这也是我在网上所看到大部分的答案,之前也一直被这个带偏,直到一次面试被指正。
2. 正文
       首先需要声明的是RPC与HTTP并不位于同一层面,两者的概念截然不同,RPC远程方法调用,即一个应用调用另一个应用的接口。
       如何在一个应用中调用另一个应用?可以通过HTTP协议,也可以通过自定义的TCP协议实现通信。最终实质上完全相同,都是通过Socket解析调用方的参数,最后再将处理结果通过Socket传输。
       所以,RPC是如何实现服务间的通信,而HTTP可以视为服务间通信采取的数据传输格式,如一个美国人要和日本人交流,他们彼此之间交流可以通过一个中国人,美国人要表达的信息告诉中国人,中国人在将其翻译成日语告诉日本人。在这三者中,美国人、日本人便是两个应用进程,而中国人可以视作HTTP协议。当然,你也可以使用其他国的人取代中国人,只要美国人和日本人都可以通过翻译完成交流。
3. HTTP 既然也是 RPC 的一种实现?为什么公司还要自研 RPC 框架?
       HTTP协议可以说是目前最为主流的一种网络通信协议,但是很多大厂依然自研RPC框架,如字节、阿里以及腾讯等?为什么他们的应用进程不之间通过HTTP协议完成交互?
       最主要的原因还是RPC框架包含了重试机制,路由策略,负载均衡策略,高可用策略,流量控制策略等等。
       如果应用进程之间只使用HTTP协议通信,显然是无法完成上述功能的。
baburwang
关注
关注
点赞
52
收藏
打赏
评论
RPC 与 HTTP 区别
RPC 与 HTTP 区别1. 前言2. 正文3. HTTP 既然也是 RPC 的一种实现?为什么公司还要自研 RPC 框架?1. 前言 网上很多博客都是在说HTTP与RPC采取不同的协议,RPC所传输的数据是经过压缩的二进制数据,但是HTTP协议同样支持gzip压缩算法。其次,另一个说法就是HTTP的报头所占的有太多无效信息,但是20-60字节的首部长度会对业务有很大影响吗?以现阶段计算机处理及网络传输速度,应该并无影响
复制链接
扫一扫
专栏目录
什么是RPC协议?RPC协议与HTTP协议的区别
BraveHeart
08-17
4万+
什么是RPC协议?
RPC是一种远程过程调用的协议,使用这种协议向另一台计算机上的程序请求服务,不需要了解底层网络技术的协议。
在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器。
HTTP是一种超文本传输协议。是WWW浏览器和WWW服务器之间的应用层通讯协议。
RPC协议与HTTP协议的区别
1、RPC是一种API,HTTP是一种无状态的网络协议。RPC可以基于HTTP协议实现,...
RPC和Http区别
最新发布
m0_49191104的博客
11-24
454
RPC和Http区别
评论 5
您还未登录,请先
登录
后发表或查看评论
RPC和Http的区别
知否
07-18
512
什么是 RPC ?
RPC (Remote Procedure Call)即远程过程调用,是分布式系统常见的一种通信方法,已经有 40 多年历史。当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手段之一。除 RPC 之外,常见的多系统数据交互方案还有分布式消息队列、HTTP 请求调用、数据库和分布式缓存等。
RPC 在我们熟知的各种中间件中都有它的身影。Nginx...
HTTP与RPC区别比较分析
cdzg_zzk的博客
10-28
1285
HTTP与RPC区别
了解RPC与Http以及其两者的区别
qq_38163180的博客
02-14
9089
RPC:即 Remote Procedure Call(远程过程调用),是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。说得通俗一点就是:A计算机提供一个服务,B计算机可以像调用本地服务那样调用A计算机的服务。
类似的还有RMI(Remote Method Invocation)远程方法调用,早期的webservice...
Rpc和Http的区别
weixin_42127508的博客
01-30
523
一.远程调用方式
无论是微服务还是分布式服务(都是SOA,都是面向服务编程),都面临着服务间的远程调用。那么服务间的远程调用方式有哪些呢?
常见的远程调用方式有以下几种:
RPC:Remote Produce Call远程过程调用,类似的还有RMI(Remote Methods Invoke 远程方法调用,是JAVA中的概念,是JAVA十三大技术之一)。自定义数据格式,基于原生TCP通信,速度快,效率高。早期的webservice,现在热门的dubbo,都是RPC的典型
RPC的框架:webservie(c
RPC服务和HTTP服务对比
热门推荐
王云朋的专栏
11-28
24万+
很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单地介绍一下两种形式的C/S架构,先说一下他们最本质的区别,就是RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看
RPC与HTTP
qq_16268979的博客
02-16
2541
我们常见的远程调用方式有RPC和HTTP,这篇文章就从这两个方面开始介绍。
一、RPC(Remote Produce Call,远程过程调用)
RPC类似于RMI(Remote Methods Invoke 远程方法调用,是JAVA中的概念,是JAVA十三大技术之一)。
1、特点:
(1)自定义数据格式
(2)基于原生TCP通信
(3)速度快
(4)效率高
2、典型代表:
(1)早期的webservice(cxf)
(2)现在热门的dubbo
RMI的框架:hessian
3、调用流程图
4、RPC详解
RPC调用和HTTP调用的区别
会玩代码的劫
04-28
8692
一.远程调用方式
无论是微服务还是分布式服务(都是SOA,都是面向服务编程),都面临着服务间的远程调用。那么服务间的远程调用方式有哪些呢?
常见的远程调用方式有以下几种:
RPC:Remote Produce Call远程过程调用,类似的还有RMI(Remote Methods Invoke 远程方法调用,是JAVA中的概念,是JAVA十三大技术之一)。自定义数据格式,基于原生TCP通信,速度快,效率高。早期的webservice,现在热门的dubbo,都是RPC的典型
RPC的框架:webservie(c
RPC和HTTP
顺其自然~专栏
02-11
1268
一、为什么需要RPC,而不是简单的HTTP接口?
  RPC(即Remote Procedure Call,远程过程调用),主要是基于TCP/IP协议;而HTTP服务主要是基于HTTP协议的。我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹啦!下面来具体说一说RPC服务和HTTP服务。
二、RPC
  从三个角度来介绍RPC服务:分别是RPC架构,同...
RPC与HTTP的区别与联系
流浪天空
01-17
1万+
直接入正题吧,经过收罗文章,个人理解大概有以下几点:
1.本质区别
http是协议,rpc是方法,rpc的实现可能也会用到http
http在应用层,rpc在传输层(长连接,少了三次握手,不过http2.0也可以链接复用了)
http中所使用的报文中有效字节数仅仅占约 30%,也就是70%的时间用于传输元数据废编码。当然实际情况下报文内容可能会比这个长,但是报头所占的比例也是非常可观的。而rpc仅通过序列化发送有效数据,省去了很多无效的数据,提高传输效率。
h...
RPC和http的区别是什么,有什么优缺点
千羽公子的专栏
08-12
2807
1.首先介绍一下http和rpc
http:是指从客户端到服务端的请求消息
rpc:是远程过程调用协议
2.区别
2.1:http协议
http请求是使用具有标准定义的通用的接口定向到资源的,这些语义能够被中间组件和提供服务的来源机器进行解释。这样会使得一个应用支持分层的转换和间接层,并且独立于消息的来源,这对于一个internet规模,多个组织,无法控制的可伸缩的信息系统来说,是非...
RPC与Http的区别
u012957549的博客
03-31
855
一.远程调用方式
无论是微服务还是分布式服务(都是SOA,都是面向服务编程),都面临着服务间的远程调用。那么服务间的远程调用方式有哪些呢?
常见的远程调用方式有以下几种:
RPC:Remote Produce Call远程过程调用,类似的还有RMI(Remote Methods Invoke 远程方法调用,是JAVA中的概念,是JAVA十三大技术之一)。自定义数据格式,基于原生TCP通信,速度快,...
RPC协议、http协议、tcp/ip协议、udp协议、socket协议以及soap协议都有什么相同点和不同点
bwh0520的博客
04-30
4253
HTTP与RPC的区别:人们常常错误地将HTTP称作一种远程过程调用(RPC)[23]机制,仅仅是因为它包括了请求和响应。 调用远程机器上的一个过程(procedure)的观念,是RPC与其他形式的基于网络的应用通信的区别在。 RPC的协议识别出过程并且传递给它固定的一组参数,然后等待在使用相同接口返回的一个消息中提供的回答。远程方法调用(RMI)也是类似的,除了过程被标识为一个{对象,方法}...
RPC协议与HTTP协议的区别
XuXin_971222的博客
07-08
1773
RPC协议与HTTP协议的区别
HTTP和RPC的区别
Steve Wang's blog
01-22
7049
HTTP接口和RPC接口都是生产上常用的接口,顾名思义,HTTP接口使用基于HTTP协议的URL传参调用,而RPC接口则基于远程过程调用。
RPC(即Remote Procedure Call,远程过程调用)和HTTP(HyperText Transfer Protocol,超文本传输协议),两者前者是一种方法,后者则是一种协议。两者都常用于实现服务,在这个层面最本质的区别是RPC服务主要工作在TCP协议之上(也可以在HTTP协议),而HTTP服务工作在HTTP协议之上。由于HTTP协议基于TCP协议.
HTTP那些事
weixin_33748818的博客
11-16
134
HTTP简介
HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器...
RPC服务与HTTP服务的区别是什么
YOKEhn的博客
07-06
166
RPC服务与HTTP服务的区别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、什么是RPCRPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
RPC框架(一)RPC简介
gb4215287的博客
02-04
1043
一、概述
二、RPC
2.1、RPC定义
2.2、RPC主要组成部分
三、影响RPC框架性能的因素
四、工业界的 RPC 框架一览
4.1、国内
4.2、国外
五、如何选择RPC框架
一、概述
随着公司规模的扩大,以及业务量的激增,单体应用逐步演化为服务/微服务的架构模式, 服务之间的调用大多采用rpc的方式调用,或者消息队列的方式进行解耦。几乎每个大厂都会创建自己的rpc框架,或者基于知名的rpc框架进行改造。
目前, rpc框架主要沿着两条路线发展,一个是目标为了跨.
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:技术黑板
设计师:CSDN官方博客
返回首页
baburwang
CSDN认证博客专家
CSDN认证企业博客
码龄5年
腾讯
131
原创
3万+
周排名
45万+
总排名
17万+
访问
等级
2454
积分
282
粉丝
236
获赞
56
评论
1007
收藏
私信
关注
热门文章
C语言图形化操作
49902
解析XML文件(一)
37762
如何用多种方法实现字符串逆序
14252
教务管理系统
5433
RPC 与 HTTP 区别
4775
分类专栏
CSS
Flink
4篇
Vue
4篇
Java
3篇
Git
Java 并发
14篇
Java 集合
11篇
JVM
9篇
MySQL
11篇
Redis
9篇
设计模式
8篇
系统设计
1篇
操作系统
8篇
计算机网络
9篇
Linux
4篇
数据结构与算法
2篇
Spring
5篇
SpringMVC
1篇
MyBatis
SpringBoot
2篇
剑指offer
1篇
Docker
1篇
Go
8篇
算法
13篇
最新评论
RPC 与 HTTP 区别
阿拉斯嘉:
那叫Remote Procedure Call,词都搞不懂还纠正呢
RPC 与 HTTP 区别
爱开发的小骚年:
HTTP3是不是也有流量控制功能?
LeetCode最长公共前缀
思绪万茜:
为啥报错,我找不出为什么,其实我感觉写的挺对的
LeetCode最长公共前缀
思绪万茜:
会报错,怎么解决
解析XML文件(一)
baburwang:
找 Jar 包可以通过maven仓库,https://mvnrepository.com/search?q=dom4j-1.6.1.jar
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
04-Flink Window API
03 - Flink 流处理 API
02- Flink 部署、运行架构
2021年8篇
2020年74篇
2019年41篇
2018年26篇
目录
目录
分类专栏
CSS
Flink
4篇
Vue
4篇
Java
3篇
Git
Java 并发
14篇
Java 集合
11篇
JVM
9篇
MySQL
11篇
Redis
9篇
设计模式
8篇
系统设计
1篇
操作系统
8篇
计算机网络
9篇
Linux
4篇
数据结构与算法
2篇
Spring
5篇
SpringMVC
1篇
MyBatis
SpringBoot
2篇
剑指offer
1篇
Docker
1篇
Go
8篇
算法
13篇
目录
评论 5
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
baburwang
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值