1. rest是什么?
- 万维网软件架构风格
- 用来创建网络服务
2. 为何叫rest?
- Representational state transfer
- Representational: 数据的表现形式(json、xml)
- state: 当前的状态或数据
- transfer: 数据传输
3. 6个特点
- 客户-服务器(client - server)
- 关注点分离
- 服务端专注数据存储,提升了简单性
- 前端专注用户界面,提升了可移植性
- 无状态(stateless)
- 所有用户会话信息都保存在客户端
- 每次请求必须包括所有信息,不能依赖上下文信息
- 服务端不用保存会话信息,提升了简单性、可靠性、可见性
- 缓存(cache)
- 所有服务端响应都要被标为可缓存或不可缓存
- 减少前后端交互,提升了性能
- 统一接口(uniform interface)
- 接口设计尽可能统一通用,提升了简单性、可见性
- 接口与实现解耦,使前后端可以独立开发迭代
- 分层系统(layered system)
- 每层只知道相邻的一层,后面隐藏的就不知道了
- 客户端不知道是和代理还是真实服务器通信
- 其它层:安全层、负载均衡、缓存层
- 按需代码(code - on - demand)
- 客户端可以下载运行服务端传来的代码(js)
- 通过减少一些功能,简化了客户端