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

    文章

    1842

    浏览量

    64479
  • HTTP
    +关注

    关注

    0

    文章

    501

    浏览量

    31065
  • RPC
    RPC
    +关注

    关注

    0

    文章

    111

    浏览量

    11515
  • OSI
    OSI
    +关注

    关注

    0

    文章

    81

    浏览量

    15404
收藏 人收藏

    评论

    相关推荐

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

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

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

    为什么有了HTTP,还需要RPC协议呢?在进行说明之前,首先我们需要了解什么是HTTP协议,什么是RPC
    的头像 发表于 08-14 10:05 952次阅读
    为什么有了<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 75次下载

    什么是RPC?为什么需要RPC

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

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

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

    HTTPRPC

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

    HTTPRPC区别与联系

    HTTPRPC的相同点:底层通讯都是基于socket,都可以实现远程调用,都可以实现服务调用服务。
    的头像 发表于 11-23 08:55 1810次阅读
    <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 932次阅读
    <b class='flag-5'>通信协议</b>中的<b class='flag-5'>HTTP</b>、TCP、UDP你了解多少(上)

    通信协议的作用、类型及优缺点

      通信协议是指在计算机网络中,为了使不同的计算机或网络设备之间能够相互通信而制定的一套规则和标准。通信协议规定了数据传输的格式、传输速率、传输控制、错误检测和纠正等方面的内容,以确保数据能够正确、高效地传输。常见的
    发表于 05-10 16:09 5080次阅读

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

    HTTP接口和RPC接口都是生产上常用的接口,顾名思义,HTTP接口使用基于HTTP协议的URL传参调用,而
    发表于 06-13 09:18 1248次阅读
    <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 732次阅读
    基于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 1814次阅读
    <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 2571次阅读
    什么是<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 3039次阅读
    <b class='flag-5'>RPC</b> 和 REST <b class='flag-5'>区别</b>是什么

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

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