REST与面向资源的Web开发-李锟(读书笔记)

1:什么是WEB

        从技术角度理解Web有三大基石,第一是URI,标识资源,第二个HTTP操作资源,第三个HYPERTEXT超文本,描述资源的状态,超文本也可以有XML JSON或者纯文本。下面我们给Web应用下一个定义,究竟什么是Web应用?首先要使用三大技术,其次是运行在英特耐特环境中,而不是运行在局域网、内网环境,Web应用名词与企业应用相对应。


2:什么是架构风格

       架构风格是一种研究和评价软件架构设计的方法。

       架构风格这种研究方法建立在两个前提之上,第一个前提就是软件的架构设计,必须要考虑其运行的环境,软件架构并不是纸面上源代码结构。第二个是脱离开运行环境的上下文,无法评价架构的优劣,不考虑两种环境具体上下文没有办法对两种架构比较。

     常见分布式应用架构风格,主要有三大类:第一类是分布式对象,包括CORBA、DCOM,REMOTING,还有一种远程过程调用,简称RPC,比如SOAP、JSON等。第三种表述性状态转移,简称REST,这是我们详细探讨的一种新的架构风格。


3:REST架构风格有哪些架构约束

       第一个架构约束是客户服务器,通信只能由客户端单方面发起,表现为请求响应的形式。

       第二个架构约束是无状态,通信的会话状态全部由客户端负责维护,服务器端负责维护会话状态之外的其他状态,

       第三个缓存,响应内容可以在通信链条某处被缓冲,以改善效率。

       第四个统一接口,通信组件之间要有统一接口,以提高交互的可见性,这样的话中间组件对请求语义非常清楚,很方便做一些缓存或者实施安全策略。

         第五个架构约束是分层系统,通过限制组件行为,将架构分解为若干等级的层,每一个组件看到与其交互的相邻层,这个大家如果熟悉,在通信链条当中插入很多中间的组件,每个组件能够看到和它直接交互的相连的层。

        最后一个架构约束是按需代码,通过下载并执行APPLET或者脚本形式的代码,允许对客户端功能进行扩展。

       但是在理解了REST的6个架构约束之后,仍然并不能够完全理解REST究竟代表的是什么?要深入理解REST,还需要REST五个关键词:第一个关键词叫做资源,第二个关键词是资源的表述,第三个关键词是状态转移,第四个关键词是统一接口,第五个关键词最难理解的叫做超文本驱动,将超媒体作为应用状态的引擎,超媒体相当于超文本加上媒体内容,作为一个整体叫超媒体。


4:什么是资源

        资源是一种看待服务器的方式,将服务器看作由很多的离散的资源组成,这种看待服务器的方式和分布式对象有很明显的分别,分布式对象看作一个对象,每个对象里面有调用的方法,REST看作是很多离散的资源,资源是服务器一个可以命名的抽象的概念,资源是一个抽象的概念,大家可能原来理解的资源仅仅是服务器的文件或者仅仅是一张表,但是资源是抽象的,资源以名词为核心的特征,首先关注的是名词,资源面向对象编程中的接口,暴露给外界的接口,资源由一个或者多个URI标识,URI是资源的名词,也是资源在Web上的地址,允许使用多个URI标识同一资源,对资源感兴趣的客户通过URI与资源交互。下面看一下什么是资源表述?它是一段对于资源在某一个特定时刻的状态描述,资源表述可以在客户和服务器之间转移,资源表述有多种格式,最常见的是HTML/XML/JSON纯文本,资源表述格式可以通过协商机制来确定。通常来说不同方向表述使用的是不同的格式,服务器到客户端,客户端到服务器端表述不一样。


你可能感兴趣的:(REST)