REST的6个限制

REST是什么

  • 万维网软件架构风格(Representational State Transfer)
    • Representational: 数据的表现形式(JSON、XML)
    • State: 当前状态或者数据
    • Transfer: 数据传输

REST 的 6 个限制

客户端-服务器(Client-Server)

  • 专注点分离
  • 服务端专注数据存储,提升了简单性,服务端代码更加简单
  • 前端专注用户界面,提升了可移植性

无状态(Stateless)

  • 所有用户会话信息都保存在客户端
  • 每次请求必须包括所有信息,不能依赖上下文信息
  • 服务端不用保存会话信息,提升了简单性、可靠性、可见性
    • 可靠性,如果服务端管理会话信息,一旦服务端故障可能会丢失所有信息,并不可靠
    • 可见性,模块接口的透明程度,每次请求都携带,接口信息就是可见性更高了

缓存(Cache)

  • 所有服务端响应都要被标志为可缓存或不可缓存
  • 减少前后端交互,提升了性能

统一接口(Uniform Interface)

  • 接口设计尽可能统一通用,提升简单性、可见性
  • 接口与实现解耦,是前后端可以独立开发

分层系统(Layered System)

  • 每层只知道相邻的一层,后面隐藏的就不知道了
  • 客户端不知道是和代理还是真实服务器通信
  • 其他层:安全层、负载均衡、缓存层等
    • 安全层,提前终止掉一些不合理请求
    • 负载均衡,网站访问量比较大,用来管理流量的分发
    • 缓存层,一般缓存一些静态文件

按需代码(Code-On-Demand 可选)

  • 客户端可以下载运行服务端传来的代码
  • 通过减少一些功能,简化了客户端
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容