REST架构
MVC架构存在的问题:
- 展示层页面与计算逻辑混杂(比如模板引擎中使用的变量名称问题)
- 用户接口并不标准
Resource Representational State Transfer 表现层状态转化
- Rest指的是一组架构约束条件和原则
- 为设计一个功能强、性能好、适宜通信的Web应用
- 如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构
- 核心概念
- 资源 (Resources)
- 表现层 (Representation)
- 状态转化 (State Transfer)
资源
RESTFul 架构应该遵循统一接口原则,统一接口包含了一组受限的预定义的操作。不论什么样的资源,都是通过使用相同的接口进行资源的访问。接口应该使用标准HTTP方法如GET,PUT和POST,并遵循这些方法的语义
如果按照HTTP方法的语义来暴露资源,那么接口将会拥有安全性和幂等性的特性
- GET和HEAD请求时安全的,无论请求多少次,都不改变服务器的状态
- GET、HEAD、PUT和DELETE请求是幂等的,无论对资源操作多少次,结果总是一样的,后面的请求并不会产生比第一次更多的影响
表现(Representation) / 表述 / 表征
状态转移 State Transfer
客户端应用状态在服务端提供的超媒体的指引下发生变迁。服务端通过超媒体告诉客户端当前状态有哪些后续状态可以进入。
一个完整的故事