0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Http与RPC通信协议的区别

jf_78858299 来源:CSDN 作者:深度Java 2023-02-13 15:01 次阅读

在开始讨论这个话题之前我们先来认识一下传统的开发模式。

OSI网络结构的七层模型

各层的具体描述如下:

第七层:应用层 定义了用于在网络中进行通信和数据传输的接口 - 用户程式;提供标准服务,比如虚拟终端、文件以及任务的传输 和处理;

第六层:表示层 掩盖不同系统间的数据格式的不同性; 指定独立结构的数据传输格式; 数据的编码和解码;加密和解密;压缩和 解压缩

第五层:会话层 管理用户会话和对话; 控制用户间逻辑连接的建立和挂断;报告上一层发生的错误

第四层:传输层 管理网络中端到端的信息传送; 通过错误纠正和流控制机制提供可靠且有序的数据包传送; 提供面向无连接的数 据包的传送;

第三层:网络层 定义网络设备间如何传输数据; 根据唯一的网络设备地址路由数据包;提供流和拥塞控制以防止网络资源的损耗

第二层:数据链路层 定义操作通信连接的程序; 封装数据包为数据帧; 监测和纠正数据包传输错误

第一层:物理层 定义通过网络设备发送数据的物理方式; 作为网络媒介和设备间的接口;定义光学电气以及机械特性。

在上述7层中,http协议是应用层协议。HTTP协议是超文本传送协议(HyperText Transfer Protocol)的缩写,它是万维网(World Wide Web,www,也简称为Web)的基础。HTTP协议设计之初就是为了实现Web的想法。HTTP协议位于TCP/IP协议栈的应用层。基于HTTP协议的客户/服务器模式的信息交换过程,分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。

而关于RPC的基本概念介绍如下:

英文原义:Remote Procedure Call Protocol

中文释义:(RFC-1831)远过程调用协议

注解:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加轻易。

RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用过程接收答复信息,获得进程结果,然后调用执行继续进行。

RPC信息协议由两个不同结构组成:调用信息和答复信息。

二者的联系是:

RPC OVER HTTP

Microsoft RPC-over-HTTP 部署(RPC over HTTP)允许RPC 客户端安全和有效地通过Internet 连接到RPC 服务器程序并执行远程过程调用。这是在一个名称为RPC-over-HTTP 代理,或简称为RPC 代理的中间件的帮助下完成的。

RPC 代理运行在IIS 计算机上。它接受来自Internet 的RPC 请求,在这些请求上执行认证,检验和访问检查,如果请求通过所有的测试,RPC 代理将请求转发给执行真正处理的RPC 服务器。通过RPC over HTTP,RPC 客户端不和服务器直接通信,它们使用RPC 代理作为中间件。

关于xml-rpc

1.1. xml rpc简介

xml rpc是使用http协议做为传输协议的rpc机制,使用xml文本的方式传输命令和数据。

一个rpc系统,必然包括2个部分:1.rpc client,用来向rpc server调用方法,并接收方法的返回数据;2.rpc server,用于响应rpc client的请求,执行方法,并回送方法执行结果。

1.2. xml rpc的可用版本

xml rpc client和xml rpc server都有很多版本的实现。一般而言,一个实现版本都会同时实现client/server。但由于都满足xml rpc规范,从理论上讲,任何一个版本的rpc client实现与任何一个版本的rpc server都能配套使用。

更进一步,由于xml rpc以xml文本的方式,使用http协议传输,所以与编程语言无关。例如:rpc client的已实现版本包括了:perl,php,python,c/c++,java,等等;rpc server的实现语言包括perl,java,等。

同一种编程语言所实现的版本也不止一个。例如java版的实现有:Marque的xmlrpc实现(http://xmlrpc.sourceforge.net/),apache的xmlrpc 实现(http://ws.apache.org/xmlrpc/)

1.3.xmlrpc的工作原理

完整的需要参考xmlrpc规范(http://www.xmlrpc.com/spec)

简单描述:

rpcclient的工作原理:rpcclient根据URL找到rpcserver -> 构造命令包,调用rpcserver上的某个服务的某个方法 -> 接收到rpcserver的返回,解析响应包,拿出调用的返回结果。

rpcserver的工作原理:启动一个webserver(在使用内置的webserver的情况下) -> 注册每个能提供的服务,每个服务对应一个Handler类 ->进入服务监听状态。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据传输
    +关注

    关注

    9

    文章

    1606

    浏览量

    63898
  • HTTP
    +关注

    关注

    0

    文章

    468

    浏览量

    30477
  • RPC
    RPC
    +关注

    关注

    0

    文章

    102

    浏览量

    11456
  • OSI
    OSI
    +关注

    关注

    0

    文章

    73

    浏览量

    15356
收藏 人收藏

    评论

    相关推荐

    通信网络技术:RPC服务和HTTP服务的区别分析

    ! 本文简单地介绍一下两种形式的 C/S 架构,先说一下他们最本质的区别,就是 RPC 主要是基于 TCP/IP 协议的,而 HTTP 服务主要是基于
    的头像 发表于 11-26 13:52 2582次阅读

    为什么有了HTTP,还需要RPC协议

    为什么有了HTTP,还需要RPC协议呢?在进行说明之前,首先我们需要了解什么是HTTP协议,什么是RPC
    的头像 发表于 08-14 10:05 736次阅读
    为什么有了<b class='flag-5'>HTTP</b>,还需要<b class='flag-5'>RPC</b><b class='flag-5'>协议</b>?

    Modbus通信协议教程

    Modbus通信协议教程Modbus通信协议教程Modbus通信协议教程
    发表于 12-08 14:14 72次下载

    什么是RPC?为什么需要RPC

    首先要明确一点:RPC可以用HTTP协议实现,并且用HTTP是建立在 TCP 之上最广泛使用的 RPC,但是互联网公司往往用自己的私有
    的头像 发表于 04-16 12:49 1.4w次阅读
    什么是<b class='flag-5'>RPC</b>?为什么需要<b class='flag-5'>RPC</b>?

    物联网通信协议的种类与其区别

    物联网通信协议种类繁多,不同层次的通信协议因硬件和连接设置而异,但在某些功能上是相同的,很多人很难区分。我们来比较一下这些通信协议区别
    发表于 06-25 09:42 3084次阅读

    i2c和spi通信协议的概念与区别 I2C/SPI总线通信协议你搞懂没有

      通信协议 同步VS异步、串行VS并行有什么区别通信协议是个基本功,哪里都用的到。 但是一般也很少人能很自信说自己完全弄懂了某个通信协议。很多时候我们用到的只是
    的头像 发表于 06-23 17:19 3203次阅读

    HTTPRPC

    TCP是传输层的协议,而基于TCP造出来的HTTP和各类RPC协议,它们都只是定义了不同消息格式的应用层协议而已。
    的头像 发表于 11-23 08:54 722次阅读
    <b class='flag-5'>HTTP</b>和<b class='flag-5'>RPC</b>

    HTTPRPC区别与联系

    HTTPRPC的相同点:底层通讯都是基于socket,都可以实现远程调用,都可以实现服务调用服务。
    的头像 发表于 11-23 08:55 1565次阅读
    <b class='flag-5'>HTTP</b>和<b class='flag-5'>RPC</b>的<b class='flag-5'>区别</b>与联系

    通信协议中的HTTP、TCP、UDP你了解多少(上)

    TCP HTTP UDP: 都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则“说话”,对方才能理解或为之服务。
    的头像 发表于 02-13 14:19 761次阅读
    <b class='flag-5'>通信协议</b>中的<b class='flag-5'>HTTP</b>、TCP、UDP你了解多少(上)

    RPC接口与HTTP接口哪一个更好?

    HTTP接口和RPC接口都是生产上常用的接口,顾名思义,HTTP接口使用基于HTTP协议的URL传参调用,而
    发表于 06-13 09:18 789次阅读
    <b class='flag-5'>RPC</b>接口与<b class='flag-5'>HTTP</b>接口哪一个更好?

    基于Client/Server架构的HTTP接口和RPC接口

    HTTP接口和RPC接口都是生产上常用的接口,顾名思义,HTTP接口使用基于HTTP协议的URL传参调用,而
    发表于 06-13 09:18 517次阅读
    基于Client/Server架构的<b class='flag-5'>HTTP</b>接口和<b class='flag-5'>RPC</b>接口

    RPC接口和HTTP接口的区别与联系

      HTTP服务 RPC接口和HTTP接口的区别与联系 参考文献   HTTP接口和RPC接口都
    的头像 发表于 06-17 14:54 1350次阅读
    <b class='flag-5'>RPC</b>接口和<b class='flag-5'>HTTP</b>接口的<b class='flag-5'>区别</b>与联系

    什么是HTTP协议?什么是RPC协议?二者如何选择使用?

    为什么有了HTTP,还需要RPC协议呢?在进行说明之前,首先我们需要了解什么是HTTP协议,什么是RPC
    的头像 发表于 08-11 09:25 1803次阅读
    什么是<b class='flag-5'>HTTP</b><b class='flag-5'>协议</b>?什么是<b class='flag-5'>RPC</b><b class='flag-5'>协议</b>?二者如何选择使用?

    RPC 和 REST 区别是什么

    01. 既 REST ,何 RPC ? 在 OpenStack 里的进程间通信方式主要有两种,一种是基于HTTP协议的RESTFul API方式,另一种则是
    的头像 发表于 11-02 10:40 2246次阅读
    <b class='flag-5'>RPC</b> 和 REST <b class='flag-5'>区别</b>是什么

    IOT(物联网)的七大通信协议Http协议

    一、什么是http协议?嵌入式HTTP协议是一种轻量级的通信协议,专为嵌入式系统设计,用于实现设备与互联网之间的
    的头像 发表于 05-24 08:11 830次阅读
    IOT(物联网)的七大<b class='flag-5'>通信协议</b>之<b class='flag-5'>Http</b><b class='flag-5'>协议</b>