对于RPC和Restful的理解

对于RPC和Restful的理解

这段时间在学习Netty 之前没有接触过RPC 对于这一直不太理解 就百度啊官网啊

再自己总结了一下 自己现在也总算是理解了点了 内容仅供参考

注:很多都是百度和别的博文上抄过来的如有侵权马上删除

RPC(Remote Procedure Call 远程过程调用)

我之前一直理解 RPC是一种框架 具体详细查了一下才发现自己的理解一直是错误的

就像 Restful 是一种风格一样 我也一直以为restful属于框架

RPC是一种远程过程调用协议

来说说RPC和HTTP调用的区别:

RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹啦

RPC理解

进程间通信,指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。这些进程可以运行在同一计算机上或通过网络连接的不同计算机上。 进程间通信技术包括消息传递、同步、共享内存和远程过程调用。 IPC是一种标准的Unix通信机制。

IPC 有两种类型的进程间通信

  • 本地过程调用(LPC)LPC用在多任务操作系统中,使得同时运行的任务能互相会话。这些任务共享内存空间使任务同步和互相发送信息。

  • 远程过程调用(RPC)RPC类似于LPC,只是在网上工作。RPC开始是出现在Sun微系统公司和HP公司的运行UNIX操作系统的计算机中。

为什么RPC呢?就是无法在一个进程内,甚至一个计算机内通过本地调用的方式完成的需求,比如比如不同的系统间的通讯,甚至不同的组织间的通讯。由于计算能力需要横向扩展,需要在多台机器组成的集群上部署应用

简单理解:

  • RPC就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果。[就如同我们使用SpringMVC]

  • RPC 会隐藏底层的通讯细节(不需要直接处理Socket通讯或Http通讯) RPC 是一个请求响应模型

  • 客户端发起请求,服务器返回响应(类似于Http的工作方式) RPC 在使用形式上像调用本地函数(或方法)一样去调用远程的函数(或方法)

Restful api

首先度娘上是这么给我们解释的:

RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。

由此我们知道 restful并不是一个框架,是一种编程设计风格和开发方式, 是基于HTTP协议的

其实对于Restful 可以公开来理解 Rest 、Restful

Rest描述的是在网络中client和server的一种交互形式 、指的是一组架构约束条件和原则

满足这些约束条件和原则的应用程序或设计就是 RESTful。

对于Restful 具体使用的一个话糙理不糙的说法

增删改查都是同一个地址,具体靠http头部信息判断

特点

RESTFUL特点包括:

1、每一个URI代表1种资源;

2、客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;

3、通过操作资源的表现形式来操作资源;

4、资源的表现形式是XML或者HTML;

5、客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。

你可能感兴趣的:(笔记,java)