REST介绍
REST是一种软件架构风格,包括了用于创建具有良好扩展性的web服务的一系列原则。REST是一系列互相协调的限制,可用于设计分布式的超媒体系统,使其具有很高的性能和可维护性。
架构特性:
- 良好的性能
- 可扩展性
- 接口简单
- 可在运行时动态修改内容
- 可移植性(可将程序与数据一起转移)
- 可靠性(系统一部分的崩溃不会引起整体的崩溃)
架构限制:
- 客户端-服务器模式
客户端不用负责数据储存,而服务器不负责UI和用户状态的储存 - 无状态
客户端的每一个请求都包含了用户状态的完整信息 - 可缓存
响应必须设置自身是否可以被缓存 - 分层系统
使用中介服务器提供负载平衡和分布式缓存 - Code on demand(可选)
可以向客户端传递可执行的代码,用于暂时扩展其功能 - 统一接口
- 资源定位
使用URI定位资源,返回到客户端时表示资源的格式和资源的存储相分离 - 操纵资源
如果客户端得到了资源的一个表现(representation),就可以改动和删除该资源 - 自我描述的消息
每一个资源都有足够的信息描述如何处理自身
- 资源定位