当前位置: 首页 > news >正文

Http 协议和 RPC 协议有什么区别?

Http 协议和 RPC 协议有什么区别?

三个层面来述说:

从功能特性来说:

  • HTTP是一个属于应用层的超文本传输协议,是万维网数据通信的基础,主要服务在网页端和服务端的数据传输上。

  • RPC是一个远程过程调用协议,它的定位是实现不同计算机应用之间的数据通信,屏蔽通信底层的复杂性,让开发者就像调用本地服务一样完成远程服务的调用。

因此这两个协议在定位层面就完全不同。

从实现来说:

  • HTTP协议是一个已经实现并成熟的应用层协议,定义了通信的报文格式Request Body和Request Header,以及Response Body 和Response Header。

    也就是说符合这样一个协议特征的通信协议,才是http协议。

  • RPC只是一种协议的规范,并没有具体实现,只有按照RPC通信协议规范实现的通信框架,也就是RPC框架,才是协议的具体实现,比如Dubbo、gRPC等。

    因此,我们可以在实现RPC框架的时候,自定义报文通信的协议规范、自定义序列化方式、自定义网络协议的类型。

因此从这个方面来说,http是成熟的应用协议,而RPC只是定义了不同服务之间的通信规范。

从应用层方面来说:

  • Http协议和RPC协议的框架,都能实现跨网络节点的服务之间通信。并且他们底层都是使用TCP协议作为通信基础。

    但是由于RPC只是一种标准协议,只要符合RPC协议框架都属于RPC框架。

因此RPC的网络通信层也可以使用HTTP协议来实现,比如gRPC、OpenFeign底层都采用了http协议。

HTTP通常用于跨越互联网传输数据,更加面向网络的通信,而RPC更多的是用来实现跨进程或者进程间的通信,适合面向应用程序的通信,性能会更好。


http://www.mrgr.cn/news/46730.html

相关文章:

  • C语言:-三子棋游戏代码:分支-循环-数组-函数集合
  • 局域网共享文件夹实现两台Windows电脑之间传输文件
  • 【Ubuntu 24.04】虚拟机常见问题解决
  • WORD转PDF脚本文件
  • LabVIEW数据库管理系统
  • 系统架构设计师考点—项目管理
  • JavaEE: HTTPS的魅力与优势揭秘
  • 1. Keepalived概念和作用
  • 代码随想录算法训练营第二十九天|93.复原IP地址 78.子集 90.子集II
  • PostgreSQL的学习心得和知识总结(一百五十三)|[performance]将 OR 子句转换为 ANY 表达式
  • 苹果电脑磁盘满了怎么清理内存?必看清理秘籍
  • maven加载依赖成功但是引入import不了包,注解报错
  • ★ 算法OJ题 ★ 二分查找算法
  • 网络安全产品类型
  • 数据结构——排序(交换排序)
  • 路由协议常见知识点
  • 初学Java基础Day15---面相对象之this,static关键字,静态代码块
  • Java如何查看变量的数据类型
  • 初识Mysql/备份,基础指令
  • 网络编程(16)——asio多线程模型IOServicePool
  • PE结构之导出表
  • 【hot100-java】二叉搜索树中第 K 小的元素
  • 内核编译 设备驱动 驱动程序
  • ARP欺骗
  • 小赢卡贷公益行:乡村振兴与多元公益并进
  • 保姆级教程 | Adobe Illustrator调整颜色透明度