zoukankan      html  css  js  c++  java
  • RESTful 架构与 RESTful 服务

    风格 ⇒ 标准 ⇒ 协议 ⇒ 实现

    Representational State Transfer,是一种软件架构风格,既然是风格,就非标准或协议,而是定义了一组设计原则和约束条件。具有如下特点:

    • 适用于客户端和服务器交互类的软件;
    • 基于该风格设计的软件更简洁,更有层次,更易于实现缓存等机制;
    • 在REST中,每一个对象都是通过 URL 来表示的

    1. 网站即软件

    网站即软件,是一种新型的软件。

    • 作为软件的网站是一种互联网软件,采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,
      • 具有高延时(high latency,受制于带宽)、高并发的特点;
      • 软件开发一般针对单机环境,网络则主要研究系统之间的通信;

    RESTful 架构的提出,使得网站越来越多地具有软件的属性,通过风格的限制和约束,也使得网站开发能够按照软件开发的方式进行开发。

    2. RESTful 架构

    REST,representational state transfer,表现层状态转化(还记得 OSI 7层网络模型吗,在网络层、传输层之上又细分为会话层(session layer),表示层(presentation layer))。


    这里写图片描述

    • 资源(resources)与资源的展现,表示层状态转移,省略了主语,表现层其实指的是资源的表示层,对资源的展示与表现;
      • 资源(resources)就是 URI/URL 的 R;
      • 所谓“资源”,就是网络空间中的一个实体,由 URI 唯一指向。它可以是一段文本,一张图片,一首歌曲,甚至是一种服务。
      • 一个专门的网站将资源具体呈现出来的形式,叫做它的“表现层”;文本可以用 txt 格式表现,也可用 html 格式、xml 格式、json 格式。URI 仅代表资源,并不指定资源形式。严格说来,某些网页网址(URL)最后的“.html”后缀名是不必要的,后缀名表格式,属“表示层”范畴,而 URL 仅说明资源的位置。那么具体的资源表示(resource representation)应该放在何处呢?通过 HTTP 请求的头信息中用 accept 和 content-type 字段(比如为 text/html)指定,这两个字段是对“表现层”的描述;
    • 状态转移(state transfer):访问一个网站,就代表了客户端和服务器的一个交互过程,客户端发出连接或者获取资源的请求,服务器给出响应。自然这个过程中,必然涉及到数据和状态的转化;
      • http 的第二个 t 就表示 transfer,转移;
      • 互联网通信协议HTTP协议,是一个无状态(stateless)协议。这意味着,所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生”状态转化”(State Transfer)。而这种转化是建立在表现层之上的,所以就是”表现层状态转化”。
        • 客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。

    references

  • 相关阅读:
    分页字符串帮助类
    CSS--九宫格滑过变红色
    css --- flex布局
    MongoDB数据库
    background属性和position属性
    js------this关键字
    js程序-- DNA相关问题
    express4.X--中间件
    CSS——<img>标签图片适配居中问题
    git学习———建立git仓库上传github和从github上下载工程
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9421142.html
Copyright © 2011-2022 走看看