API --Application Programming Interface(应用程序编程接口)
REST --Representational State Transfer(表现层状态转移)
REST是以Web为平台的
Web --分布式信息系统为超文本文件和其他对象(资源)提供访问入口
Web是什么: 分布式信息系统为超文本文件和其他对象(资源)提供访问入口
Web是什么: 分布式信息系统为超文本文件和其他对象(资源)提供访问入口
资源是Web架构的关键点:需要三个步骤
识别(identify)
表示(represent)
交互(interface with)
对应了三个概念:
URI(统一资源标识符包括URL和URN)识别资源
representation(例如HTML,XML,图片,视频等)表示资源
通过协议(包括http,ftp等等)与资源进行交互
综上:REST是选择通过使用http协议和URI,利用client/server model对资源进行CRUD(Create/Read/Update/Delelte)增删改查操作。
REST的优点
1.客户-服务器(Client-Server)客户端服务器分离
优点:
提高用户界面的便携性(操作简单)
通过简化服务器提高可伸缩性(高性能,低成本)
允许组件分别优化(让服务端和客户端分别进行改造和优化)
2、无状态(Stateless)
从客户端的每个请求都包含服务器所需要的所有信息
优点:
提高可见性(单独考虑每个请求)
提高可靠性(更容易从局部故障中修复)
提高可扩展性(降低服务器资源使用)
3、缓存(Cachable)
服务器返回信息必须被标记是否可以缓存,如果缓存,客户端可能会重用之前的信息发送请求
优点:
减少交互次数
减少交互的平均延迟
4.分层系统(Layered System)
系统组件不需要知道与他交流组件之外的事情。封装服务,引入中间层
优点:
限制了系统的复杂性
提高可扩展性
5.统一接口(Uniform Interface)
优点:
提高交互的可见性
鼓励单独改善组件
6.支持按需代码(Code-On-Demand 可选)