REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。
l 基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
l 不适应于所有的项目,当项目比较小时使用RestFul架构,项目变得更复杂;
l RESTful架构将服务器分成前端服务器和后端服务器两部分,前端服务器为用户提供无模型视图;后端服务器为前端服务器提供接口。浏览器向前端服务器请求视图,通过视图中包含的AJAX函数发起接口请求获取模型。
l RESTful架构时对MVC架构改进后形成的一种架构,通过使用事先定义好的接口与不同的服务联系起来。在REST’ful架构中,浏览器使用POST,DELETE,PUT,GET四种请求方式分别对指定的URL资源进行增删改查操作。因此,RESTful是通过URI实现对资源的管理及访问,具有扩展性强、结构清晰的特点。
GET:获取资源、POST:新建资源、PUT:更新资源、DELETE:删除资源
每一个URI代表一种资源,资源的表现形式是XML或者HTML,通过操作资源的表现形式来操作资源。
客户端和服务器之间的交互在请求之间是无状态的,从客户端到服务器端的每个请求都必须包含理解请求所必须的信息。
Restful特点包括:
1、每一个URI代表1种资源;
2、客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;
3、通过操作资源的表现形式来操作资源;
4、资源的表现形式是XML或者HTML;
5、客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。
REST便于我们更好的开发
主流的是http1.1协议,先有REST这套理论,再设计出来http1.1协议.
Rest是一套理论,使用rest理论的应用和项目可以称为restful应用.
网络上,一切皆资源;每一种资源都有一个特定的URI指向它;
² 一种架构方式的约束,一种约定的标准;
² 对api接口规范、命名规则、返回值、授权验证等进行一定的约束;
REST:;
² 每一个URL代表一种资源;
² 客户端和服务器之间,传递这种资源的某种表现层;
² 客户端通过四个HTTP动词(get、post、put、delete),对服务器端进行操作,实现“表现层状态转化”;
RESTful6大原则:
C-S架构、无状态、统一的接口;
一致的数据格式;系统分层;可缓存;按需编码,可定制编码(可选);
restful其实就是一套编写接口的协议,协议规定如何编写以及如何设置返回值、状态码等信息。
最显著的特点:
restful: 给用户一个url,根据method不同在后端做不同的处理,比如:post 创建数据、get获取数据、put和patch修改数据、delete删除数据。
URL、URI、URN
URI:uniform resource identifier(统一资源标识符)
用来唯一的标识一个资源。Web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个URI来定位的;URI组成:访问资源的命名机制;存放资源的主机名;资源自身的名称,由路径表示,着重强调于资源。
URL:uniform resource locator(统一资源定位器)
是一种具体的URI,即URL可以用来标识一个资源,并且还指明了如何locate这个资源。
URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上(特别是著名的Mosaic)。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL组成:协议(或称为服务方式);存有该资源的主机IP地址(有时也包括端口号);主机资源的具体地址。如目录和文件名等。
URN:uniform resource name(统一资源命名)
是通过名字来标识资源,比如mailto:java-net@java.sun.com
Http的无状态连接
http连接是无状态,符合restful原则的Web API是无状态。
这个状态是对服务器而言的。无状态,意味着服务器不存储客户端的状态,无须在自己这里维护客户端的状态。但是!无状态不代表没有状态,而是说,每次客户端访问服务器,状态都由客户端带过来。换言之,状态不由服务器维护,而是客户端自己维护。客户端你需要什么,服务器就给你什么,服务器只负责提供服务,安安静静地做个美男子。
好处:
1、服务器有超然的地位,简化了设计(简单的往往是最好的)
2、利于集群部署(由于无需维护状态,比如啥会话什么的,不用设置专用的缓存服务器)
来源:https://www.cnblogs.com/qingaoaoo/p/12397086.html