RESTful架构
来源:互联网 发布:武汉理工网络教育2017 编辑:程序博客网 时间:2024/06/07 17:19
REST:Representational State Transfer(资源)表述性状态转化
资源与URI:任何事物,只要有被引用到的必要,它就是一个资源。要让一个资源可以被识别,需要有个唯一标识,在Web中这个唯一标识就是URI(Uniform Resource Identifier)。 URI既可以看成是资源的地址,也可以看成是资源的名称。
统一资源接口:RESTful架构应该遵循统一接口原则,统一接口包含了一组受限的预定义的操作,不论什么样的资源,都是通过使用相同的接口进行资源的访问。GET用来获取资源,POST用来新建资源,PUT用来更新资源,DELETE用来删除资源。
资源的表述:上面提到,客户端通过HTTP方法可以获取资源,确切的说,客户端获取的只是资源的表述而已。 资源在外界的具体呈现,可以有多种表述(或成为表现、表示)形式,在客户端和服务端之间传送的也是资源的表述,而不是资源本身。 例如文本资源可以采用html、xml、json等格式,图片可以使用PNG或JPG展现出来。 资源的表述包括数据和描述数据的元数据,例如,HTTP头“Content-Type” 就是这样一个元数据属性。通过HTTP内容协商,客户端可以通过Accept头请求一种特定格式的表述,服务端则通过Content-Type告诉客户端资源的表述形式。
状态的转移:这里说的无状态通信原则,并不是说客户端应用不能有状态,而是指服务端不应该保存客户端状态。实际上,状态应该区分应用状态和资源状态,客户端负责维护应用状态,而服务端维护资源状态。 客户端与服务端的交互必须是无状态的,并在每一次请求中包含处理该请求所需的一切信息。 服务端不需要在请求间保留应用状态,只有在接受到实际请求的时候,服务端才会关注应用状态。 这种无状态通信原则,使得服务端和中介能够理解独立的请求和响应。 在多次请求中,同一客户端也不再需要依赖于同一服务器,方便实现高可扩展和高可用性的服务端。状态转移到这里已经很好理解了, “会话”状态不是作为资源状态保存在服务端的,而是被客户端作为应用状态进行跟踪的。客户端应用状态在服务端提供的超媒体的指引下发生变迁。服务端通过超媒体告诉客户端当前状态有哪些后续状态可以进入。 这些类似“下一页”之类的链接起的就是这种推进状态的作用——指引你如何从当前状态进入下一个可能的状态。
简单地理解,URI表示的是资源,资源存于服务器。资源的表述写在Content-Type中。对资源的操作写在HTTP协议中,如与服务器通信时写明是GET还是POST。
- 【RESTful】理解RESTful架构
- Restful架构
- RESTful架构
- RESTful架构
- RESTful架构
- Restful架构
- RESTful架构
- RESTful架构
- RESTful架构
- Restful架构
- RESTful架构
- RESTful架构
- RESTful 架构
- RestFul架构
- RESTful架构
- RESTful架构
- RESTful架构
- RESTful架构
- 【ReactiveX】RxSwift 集成与应用
- AngularJS 初探(一)
- python .T操作
- 第七次笔记
- idea使用gradle搭建SpringBoot
- RESTful架构
- CentOS 7中利用Snapper快照进行系统备份与恢复
- Python系列之二_Python基本语法
- QT和Mysql的第一次连接
- 第八次笔记
- Android图解浅析事件拦截机制
- GYM 100247 J. The Best Statement(水~)
- centos linux,/dev/mapper/vg_pvm-lv_root 磁盘满/root full
- RxJava系列6(从微观角度解读RxJava源码)