可能你之前从未听说过RESTful架构,甚至不知道它是什么!但是,一旦了解它你就会发现,RESTful架构是如此的火爆,如此的风靡于互联网软件架构! RESTful既然如此倍受互联网的欢迎,那么RESTful架构究竟是什么呢? 别着急,想要了解RESTful,我们先来了解一位大佬RoyThomasFielding,一个出生于加州拉古纳海岸的伟大计算机科学家。一个集HTTP协议(1。0版和1。1版)主要设计者、Apache服务器软件作者、Apache基金会第一任主席,这三大头衔于一身的伟大男人。 2000年,他在博士论文《ArchitecturalStylesandtheDesignofNetworkbasedSoftwareArchitectures》中首次提出了REST的概念。之后,这篇论文受到了广泛的关注,在当时的互联网界掀起了轩然巨波,对互联网的发展产生了深远的影响。 Fielding所提出的REST可以看作是一种互联网软件架构原则,凡是符合REST原则的架构,都可称之为RESTful架构。 RESTful的英文全称为RepresentationalStateTransfer,直接翻译过来即为表现层状态转化,看到这儿,你可能还是不明白,到底什么是RESTful啊?可以用人话表示一下吗?其实表现层省略了主语,它指的是资源的表现层。下面,我们来慢慢详解有关内容。 (1)资源(Resources) RESTful中的资源指的是,互联网上的一个实体或是一条有价值的信息。资源可以是一段文本、一张图片、一首歌曲、一种服务。每种资源对应着一个特定的URL(UniformResourceLocator)统一资源定位符。 URI成为了每一个资源的地址,更像是独一无二的识别符。因此,从这个角度来看,所谓的上网,就是调用URL与互联网上的一些资源交互。 (2)表现层(Representation) 我们将互联网上,资源所呈现出来各中表现形式,称为它的表现层。例如,文本可以由TXT表现,也可由XML、HTML、JSON等形式表现。这些都属于文本的表现层。 (3)状态转化(StateTransfer) 在访问互联网的过程中,必然存在着客户端和服务器的互动,因此也必然涉及着数据和状态的变化。 另外,互联网的通信协议是基于HTTP的无状态协议。这就意味着,所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,即前台想要访问后台资源时,必须通过一定的方法途径,让服务器端发生状态转化(StateTransfer)。这种转化又恰好是发生在表现层之上的,所以这个过程就被称之为表现层状态转化。 由于基于HTTP协议,客户端来使服务端发生变化的操作也就是常用的GET、POST、PUT、DELETE这四个操作。GET获取资源,POST新建资源,PUT更新资源,DELETE删除资源。 因此,RESTful用一句话来概括就是URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。 (4)为什么要用RESTful架构? 近年来前端设备层出不穷(手机、平板、桌面电脑、其他专用设备。。。。。。),不同的前端设备与后端进行通信交互时,每一个都要写上不同的协议吗? 答案当然是不必须的,RESTful正是为解决此问题而诞生的。它可以通过一套统一的接口为Web,iOS和Android等不同前端提供服务,建立统一的后台管理。 如果你耐心的看完了此文,那么恭喜你,关于RESTful的理论知识你已全部掌握记得下次一起来实战哦