`
weitao1026
  • 浏览: 1052730 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

区别下RPC与HTTP

 
阅读更多

由于加入到新的一个项目组里面,跟以前的工作方式和思维方式不同,

第一个遇到的就是http的url里面居然可以带上网络服务的函数,通过这样的方式得到服务器的结果。

联系下以前的RPC,所以百度到这个  http://blog.csdn.net/21aspnet/article/details/6951478  

 

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,Webservice,RMI,JMS的区别)

几种基于HTTP协议的RPC性能比较

RPC和Socket的区别

http://blog.163.com/fanning_7213/blog/static/249650520113124540501/

RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过程调用).

    越底层,代码越复杂、灵活性越高、效率越高;越上层,抽象封装的越好、代码越简单、效率越差。Socket和RPC的区别再次说明了这点。

不论是程序员在编写基于C/S(客户端服务器)的程序时,还是网络工程师在处理RPC问题时,他们问的最多的就是RPC和Socket有什么区别和联系? 
   RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像 LPC(本地过程调用).RPC带来了开发C/S程序的简单可靠的手段,它通过一种叫XDR的数据表达方法描述数据,程序员书写伪代码,然后由 rpcgen程序翻译为真正的可编译的C语言源代码,再编译成真正的Client端和Server端程序。 
  RPC作为普遍的C/S开发方 法,开发效率高效,可靠.但RPC方法的基本原则是--以模块调用的简单性忽略通讯的具体细节,以便程序员不用关心C/S之间的通讯协议,集中精力对付实 现过程.这就决定了 RPC生成的通讯包不可能对每种应用都有最恰当的处理办法,与Socket方法相比,传输相同的有效数据,RPC占用更多的网络带宽. 
  RPC是在Socket的基础上实现的,它比socket需要更多的网络和系统资源.另外,在对程序优化时,程序员虽然可以直接修改由rpcgen产生的令人费解的源程序,但对于追求程序设计高效率的RPC而言,获得的简单性则被大大削弱. 
RPC与是Socket的类比

分享到:
评论

相关推荐

    REST与RPC的区别.pdf

    ### REST与RPC的区别详解 #### 一、概述 在现代软件开发中,特别是分布式系统设计领域,REST(Representational State Transfer)与RPC(Remote Procedure Call)是两种非常重要的服务调用方式。这两种方法各有...

    rpc服务端与客户端原理及原理图

    "RPC服务端与客户端原理及原理图" RPC(Remote Procedure Call,远程过程调用)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC 协议假定某些传输协议的存在,如 TCP 或 UDP,为...

    使用jsonrpc

    在本篇中,我们将深入探讨JSON-RPC的工作原理、其与其它RPC协议的区别,以及如何在实际开发中使用JSON-RPC。 首先,让我们了解JSON-RPC的基本结构。一个JSON-RPC请求由以下几部分组成: 1. **版本(version)**:...

    RPC设计思路图

    **NIO(非阻塞I/O)与传统IO的区别**: 传统IO基于流,是阻塞的,即读写操作完成后才会返回。而NIO引入了选择器和通道的概念,允许多个连接并发处理,提高了效率,尤其适合大量并发连接的情况。 **自定义RPC框架的...

    Restful、SOAP、RPC、SOA、微服务之间.docx

    六、SOA 与微服务的区别 * 微服务相比于 SOA 更加精细 * 微服务提供的接口方式更加通用化 * 微服务更倾向于分布式去中心化的部署方式 七、为什么要使用微服务? * 技术为业务而生,架构也为业务而出现 * 微服务...

    2-OSI模型与RPC协议1

    **RPC与HTTP的区别:** 1. **层次位置**:RPC在传输层,HTTP在应用层。 2. **接口调用**:RPC直接调用接口,HTTP需要通过HTTP方法(GET, POST等)和URL指定资源。 3. **连接类型**:RPC通常为长连接,HTTP默认为短...

    Web Services的两种访问方法RPC与SOAP

    RPC与SOAP的主要区别在于: 1. **数据格式**:RPC通常不直接使用XML,而是将数据转换为特定编程语言的数据类型;而SOAP完全基于XML,所有的交互都以XML格式进行。 2. **复杂性**:RPC相对简洁,适合简单的调用;...

    apache xml rpc client

    9. **与Web服务的区别**: - 相比于SOAP或RESTful Web服务,XML-RPC更简单,但灵活性较低,不支持WSDL(Web服务描述语言)和服务发现。 10. **集成其他技术**: - Apache XML-RPC客户端可以与其他Java框架,如...

    为什么说要搞定微服务架构,先搞定RPC框架

    ##### 本地函数调用与远程过程调用的区别 以一个简单的本地函数调用为例: ```c++ int result = Add(1, 2); ``` 这里,我们调用了本地代码段中的`Add`函数,并传递了两个参数1和2。传入数据、传出数据以及代码段...

    RPC图解学习面试背诵

    了解RPC原理后,面试中可能会问到的问题有:RPC和Web Service的区别,如何选择适合的序列化方式,理解RPC框架如Dubbo、gRPC的工作流程,以及如何设计和优化RPC服务等。通过深入学习和实践,可以提升在分布式系统开发...

    RPC.rar_I AM

    - RPC与Web服务(如RESTful API)的区别 - 常见的RPC框架,如gRPC、Thrift、Dubbo、Hessian等 - 序列化协议,如JSON-RPC、XML-RPC、protobuf等 - 安全性考量,如身份验证、授权和加密 - 实战案例,展示如何在实际...

    自己设计一个简单的RPC组件1

    【部分内容】概述了RPC的基本概念,包括远程调用的实现要点、HTTP与RPC的区别,以及流行的RPC框架如Dubbo的特点。此外,还介绍了如何构建一个简单的RPC框架,包括模拟服务提供方和服务调用方的场景。 【详细知识点...

    Dubbo 是一款高性能、轻量级的开源 RPC 框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架

    - **与 Spring Cloud 的关系与区别**:两者都是微服务框架,Dubbo 主要是 RPC 方式,而 Spring Cloud 侧重于完整的微服务解决方案,包括服务发现、配置中心、熔断机制等。 - **与 Dubbox 的区别**:Dubbox 是 ...

    RPC、RMI、SOAP的区别详解

    RPC与RMI的区别主要在于,RPC是一种更抽象的远程过程调用技术,而RMI是RPC在Java语言中的一种具体实现,专门为Java环境设计。RMI不仅传递参数和返回值,还能传输Java对象,而RPC通常基于文本消息传递,例如使用HTTP...

    Rabbit:RPC框架,使用ZooKeeper,Netty,期待良好的设计

    2、RPC与HTTP请求的区别:利用应用层的HTTP协议,也可以满足客户/服务器模式的信息交换,那为何还需要更为复杂的RPC框架呢?我们知道,使用HTTP接口,一般有四个过程:(3次握手)建立(TCP协议)连接,发送请求信息...

    不和谐的RPC

    9. **RPC原理**:深入理解RPC的工作原理,包括请求/响应模式、协议栈、以及与RESTful API的区别。 10. **Discord API**:熟悉Discord的开发者文档,学习如何获取OAuth2令牌,设置应用状态,以及处理实时更新。 ...

    IO_deep_learning_notes.zip

    主要来自于以下课程内容以及其他牛人文章总结+一nene自己的思考 ...207 全手写基于Netty的RPC框架 简单重构框架分层及RPC传输的本质及有无状态的RPC区别 地址 216 自定义HTTP协议解析和HTTPserver调用实现 地址

    SOAP webserivce 和 RESTful webservice 对比及区别

    SOAP Web服务和RESTful Web服务是两种常见的Web服务交互方式,它们在设计理念、协议复杂度、数据格式和操作方式等方面存在显著的区别。 首先,SOAP(简单对象访问协议)是一种基于XML的协议,它允许不同系统之间的...

    wcf,net remoting,web service 概念及区别

    ### WCF、.NET Remoting、Web Service:概念与区别 在探讨WCF(Windows Communication Foundation)、.NET Remoting和Web Service之间的概念及其差异之前,我们先简要回顾一下这三种技术的历史背景和发展脉络。 ##...

    SOA和Web_Service的区别

    ### SOA与Web Service的本质区别 尽管Web Service是实现SOA的重要工具之一,但两者有着本质的区别: 1. **范围不同**:Web Service专注于定义和实现具体的服务接口,而SOA是一种更广泛的架构模式,它涉及服务的...

Global site tag (gtag.js) - Google Analytics