您现在的位置是:主页 > news > 用vs做网页是怎么创建网站的/百度seo快排软件

用vs做网页是怎么创建网站的/百度seo快排软件

admin2025/4/29 11:26:06news

简介用vs做网页是怎么创建网站的,百度seo快排软件,泰安网站开发,wordpress tag别名想要比较清楚的了解RPC和RESTful的区别,我们先来了解一下网络的七层模型。 OSI网络模型 图片来自网络 我们可以清楚的看到OSI模型一共有七层,从上到下分别是: 第一层应用层。定义了用于在网络中进行通信和传输数据的接口;第二层…

用vs做网页是怎么创建网站的,百度seo快排软件,泰安网站开发,wordpress tag别名想要比较清楚的了解RPC和RESTful的区别,我们先来了解一下网络的七层模型。 OSI网络模型 图片来自网络 我们可以清楚的看到OSI模型一共有七层,从上到下分别是: 第一层应用层。定义了用于在网络中进行通信和传输数据的接口;第二层…

想要比较清楚的了解RPCRESTful的区别,我们先来了解一下网络的七层模型。

OSI网络模型

在这里插入图片描述
图片来自网络

我们可以清楚的看到OSI模型一共有七层,从上到下分别是:

  • 第一层应用层。定义了用于在网络中进行通信和传输数据的接口;
  • 第二层表示层。定义不同的系统中数据的传输格式,编码和解码规范等;
  • 第三层会话层。管理用户的会话,控制用户间逻辑连接的建立和中断;
  • 第四层传输层。管理着网络中的端到端的数据传输;
  • 第五层网络层。定义网络设备间如何传输数据;
  • 第六层链路层。将上面的网络层的数据包封装成数据帧,便于物理层传输;
  • 第七层物理层。这一层主要就是传输这些二进制数据。

众所周知REST API是基于HTTP协议来传输数据的,RPC主要是基于TCP/IP协议的,所以效率来看的话,RPC的效率会高一点,尤其是在复杂的系统中使用RPC效果会更明显。

什么是REST API

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

↑以上内容来自百度百科。

REST即Representational State Transfer的缩写,是基于HTTP协议之上的一组约束和属性,翻译过来是表现层状态转移。

REST是一种设计风格(并非一种标准),描述的是在网络中ClientServer的一种交互形式,目的是便于不同的软件/程序在网络中互相传递消息。

REST API大概有以下三部分组成:

  • method:动词(GET,POST之类的)
  • Host/post:URI(统一资源标识)、服务器,端口
  • Path:名词(路径,服务器里面的某个东西)路径的结尾是资源的形态(如text, html, image, pdf等)。

REST API常见的HTTP code

  • Status Code: 200 OK
  • Status Code: 400 Bed Request
  • Status Code: 404 Not Found
  • Status Code: 500 Internal Server Error

REST充分利用HTTP自身的GETPOSTPUTDELETE的方法实现接口的统一化,比如对同一个资源进行CRUD操作:

GET     /dogs    获取所有狗狗 
POST    /dogs    新增/修改狗狗信息
PUT     /dogs    修改狗狗信息
DELETE  /dogs    删除狗狗信息

REST API主要的设计原则:

  • 资源与URI
  • 统一资源接口(HTTP方法如GET,PUT和POST)
  • 资源的表述
  • 资源的链接
  • 状态的转移

总之,RESTful的核心就是后端将资源发布为URI,前端通过URI访问资源,并通过HTTP动词表示要对资源进行的操作。

什么是RPC

RPC(Remote Procedure Call),远程过程调用,就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果。

RPC在使用形式上像调用本地函数(或方法)一样去调用远程的函数(或方法)。通常的调用过程,把函数序列化,远端收到后,再把函数反序列化,完成函数调用。

一个完整的RPC的架构应该包含以下几个组件:

  • 客户端(Client):服务的调用方;
  • 服务端(Server):真正的服务提供者;
  • Client stub:存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务方;
  • Server stub:接收客户端发送过来的消息,将消息解包,并调用本地的方法。
一个RPC的完整过程

RPC采用Client-Server结构,通过request-response消息模式实现。

实际情况下,RPC很少用到http协议来进行数据传输,毕竟只是想传输一下数据而已,何必动用到一个文本传输的应用层协议呢。为什么不直接使用二进制传输?比如直接用Java的Socket协议进行传输?

不管用何种协议进行数据传输,一个完整的RPC过程,都可以用下面这张图来描述:
在这里插入图片描述
对上图的解释如下:

  • Client是服务调用方,Server是服务提供者。
  • 左边的Client里的Application就是一个真正的调用者,先去调用Client Stub这个代理对象,其实内部是通过RPC方式来进行远程调用的代理对象,这一步主要是来传递参数。
  • 至于Client Runtime Library,则是实现远程调用的工具包,比如jdk的Socket。最后通过底层网络实现实现数据的传输。
  • 然后客户端本地操作系统将消息从客户端机器发送到服务端机器。
  • 服务端操作系统接收到数据包传递给Server Stub。
  • Server Stub解组消息为参数。
  • Server Stub再调用服务端的函数(或方法),得到执行结果之后以反方向的相同的步骤响应给客户端,至此就完成了一次RPC调用。

这个过程中最重要的就是序列化反序列化了。因为数据传输的数据包必须是二进制的,直接丢一个Java对象过去,人家可不认识,必须把Java对象序列化为二进制格式,传给Server端,Server端接收到之后,再反序列化为Java对象。

总结
  • REST API主要为第三方暴露接口,比如暴露给APP端,WEB端。
  • RPC主要在自家比较复杂的业务系统中使用,完成服务之间的通信。

在这里插入图片描述