首页 > 编程语言 >Node.js中什么是RPC通信?和Ajax有啥区别?

Node.js中什么是RPC通信?和Ajax有啥区别?

时间:2024-04-01 16:00:47浏览次数:16  
标签:Node HTTP Ajax 通信 RPC 寻址 服务器

什么是RPC通信

先导语

对于后端人员来说,RPC通信是一个很熟悉的也很容易理解的东西,但是对于像我这样的前端人员来讲,对RPC就比较陌生,理解起来也相对困难一点了。对于这个问题,我们今天来尝试下,站在前端的角度来理解下RPC通信。【推荐学习:《nodejs 教程》】

RPC和Ajax

RPC和Ajax是很相像的,它们之间有很多相同点。比如说:

  • 都是两台计算机之间的通信

  • 都会约定数据格式

RPC和Ajax的不同点:

  • 不一定基于DNS作为寻址服务

  • 应用层协议一般不是用HTTP协议

  • 基于TCP或者UDP协议

接下来我们来一个一个说下他们之间的不同点:

1.寻址服务器的不同

Ajax使用DNS作为寻址服务器

Ajax发起请求的URL一般是这样的,例如:HTTP://域名/路径, 但是计算机之间的通讯依靠的是IP而不是域名,所以便需要一个寻址服务器来寻找到对应域名的IP,Ajax使用的便是DNS来作为寻址服务器。再得到IP地址之后,浏览器根据IP地址来找到对应的服务器,然后服务器把数据返回给浏览器。 如下图的过程:

1.png

RPC 通过特定的服务器来做寻址服务

RPC跟Ajax的解析过程类似,但是它不是使用DNS来做寻址服务器的,而且,它是通过某个ID来寻找对应的IP的。例如:阿里的ID是使用VIP这样类似的ID。

2.png

2. TCP通信方式

浏览器使用TCP就是遵循HTTP规范,但是RPC使用TCP就有多种方式:
1.单工通讯
2.半双工通讯
3.双工通讯

单工通信

单工通信就是,在客户端和服务器端的连接中,永远只有一方可以给另外一方发送消息

半双工通信

半双工通信就是:在同一时间段中,只有一方能给另外一方发送消息,只有当消息发送完毕之后,另外一方才可以发送消息。如下图:

3.png

双工通信

双工通信就是两方都可以随时向对方发送消息。如下图:

4.png

协议不同

Ajax是使用HTTP协议。而RPC通信则是使用二进制协议。二进制协议与HTTP协议相比主要有两个优势,分别是:
1. 更小的数据包体积(二进制数据而非文本数据)
2. 更快的编解码速度(计算机对二进制数据的编解码速度很明显高于对文本数据的编解码速度!)

结束语

今天,我们根据对比Ajax和RPC的相同点与不同点来了解了什么是RPC通信。下一次,我们将通过学习NodejS的buffer编解码二进制数据来进一步学习RPC。那么,下次见。好好学习,天天向上!

标签:Node,HTTP,Ajax,通信,RPC,寻址,服务器
From: https://www.cnblogs.com/dhcpclass/p/18108667

相关文章

  • AJAX学习笔记
    HTTP协议请求与响应文本结构请求报文行: POSTurlHTTP/1.1 //分别是请求类型、url、HTTP协议版本头: Host:atguigu.com //记住头的格式,名称+“:”+空格+内容 Cook:name=guigu Content-type:application/x-www-form-urlencoded空行体: username=admin&password=admin......
  • import resolve from '@rollup/plugin-node-resolve' 这个包的作用是什么
    importresolvefrom'@rollup/plugin-node-resolve'这行代码引入了Rollup.js的一个插件——@rollup/plugin-node-resolve。这个插件在使用Rollup进行模块打包时起到至关重要的作用,具体作用如下:**1.Node.js模块解析:@rollup/plugin-node-resolve插件的主要职责是帮助Ro......
  • 【Node.js】大文件上传
    概述大文件上传通常采用分片上传。如果因为某些原因上传突然中断,解决问题之后可以接着之前的分片上传,而不需要从头开始上传,也就是断点续传。此外还可以利用多个网络连接并行上传多个分片,提高上传速度。注:前端不能使用live-server去启动,live-server启动会在上传文件时......
  • NodeJS 高校学业预警系统 毕业设计-10551
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,教育行业当然也不能排除在外。高校学业预警系统是以实际运用为开发背景,运用软件工程开发方法,采用Node.JS技术构建的一个管理系统。整个开发过程首先对软件系......
  • 【NodeMcu-ESP8266】引脚使用参考指南——推荐收藏
    目录概述     一、ESP826612—E/F模组引脚图二、ESP826612-E/FNodeMCU引脚图三、ESP8266coreforArduino源码关于NodeMCU引脚设置的定义四、ESP8266-NodeMCU引脚特性及使用建议五、需要特别提醒和强调的几个具体问题参考文档概述         ......
  • 【BlossomRPC】如何自定义一个RPC协议?
    文章目录如何设计一个RPC协议?RPC项目配置中心项目网关项目如何设计一个RPC协议?在上面的需求描述中我们知道,RPC非常重要的一环,就是自己制定符合自己需求的通信协议,这里,我简单的列出了我的协议。publicclassRpcHeaderimplementsSerializable{//publicst......
  • 【BlossomRPC】手把手教你写一个RPC协议
    文章目录新的开始什么是RPC?设计一个RPC需要些什么?新的开始经常会遇到一些项目,看着看着就发现看不懂文档了,也就是会出现一些跳过讲解的文章,使得自己很难了解某种中间件的开发全貌,所以想着自己先设计一个比较简易的RPC框架,在实现所有功能的前提下,向公司内部的技术分享......
  • dtb转为device_node
    转载文章:https://blog.csdn.net/qq_33141353/article/details/122079018https://www.cnblogs.com/downey-blog/p/10485596.html#top 此处做个记录,后面会具体分析......
  • Node+Vue毕设湛江市美食推荐网站(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:湛江市作为广东省的一个沿海城市,以其独特的地理位置和丰富的海洋资源而闻名。这样的条件孕育了湛江独有的美食文化,吸引了无数食客前来探寻。然而,目前市场上......
  • Node+Vue毕设在线云笔记平台(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在知识经济和信息时代,个人知识的管理和积累变得日益重要。云笔记平台作为一种新型的信息记录和整理工具,以其便捷性、实时性和跨平台性,受到了广大用户的青睐......