提交学习笔记专用
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
2.4 KiB

3 weeks ago
  1. REST与RESTful架构学习总结
  2. REST是一组架构约束和原则,RESTful则是符合这些约束的架构风格,核心是利用Web现有标准实现高效、可扩展的资源交互。
  3. 一、核心概念梳理
  4. 1. REST本质:并非新技术,而是基于HTTP等Web标准的架构原则集合,由HTTP规范编写者Roy Fielding在博士论文中提出,目标是构建功能强、性能优、易通信的网络应用架构。
  5. 2. RESTful定义:遵循REST约束(如统一接口、无状态通信等)的架构即为RESTful架构,核心围绕“资源”展开交互。
  6. 二、关键核心原则(围绕资源展开)
  7. 1. 资源与URI:唯一标识资源
  8. 资源:任何需被引用的事物(实体或抽象概念,如用户信息、订单、优惠套餐),需通过唯一URI标识。
  9. URI设计技巧:用_/-提升可读性,/表示层级关系,?过滤资源,,/;表示同级关系;URI仅表资源名称,不包含操作(如避免/getUser/1这类格式)。
  10. 2. 统一资源接口:标准化操作
  11. 采用HTTP标准方法(GET、POST、PUT、DELETE)操作资源,遵循方法语义:
  12. GET:安全且幂等,用于获取资源;
  13. POST:不安全且不幂等,用于创建资源、部分更新等;
  14. PUT:不安全但幂等,用于客户端指定URI创建或全量更新资源;
  15. DELETE:不安全但幂等,用于删除资源。
  16. 配套HTTP状态码(如200成功、201创建、404未找到)实现语义化通信,避免依赖响应体传递错误信息。
  17. 3. 资源的表述:多格式交互
  18. 客户端获取的是资源的“表述”(非资源本身),支持多种格式(JSON、XML、HTML等)。
  19. 通过HTTP内容协商:客户端用Accept头指定格式,服务端用Content-Type头返回实际格式;不支持的格式返回406状态码。
  20. 不建议在URI中带版本号或格式后缀(如.json),优先用请求头区分。
  21. 4. 资源的链接:超媒体引导
  22. 核心特性“超媒体即应用状态引擎”,通过表述中的链接(如响应头Link、响应体url字段)引导客户端交互,提升资源连通性,而非仅关注URI设计。
  23. 5. 状态的转移:无状态通信
  24. 服务端不保存客户端应用状态,每次请求需包含所有处理信息(无状态通信);客户端维护应用状态,服务端维护资源状态。
  25. 应用状态通过服务端提供的超媒体链接实现转移,客户端无需依赖固定服务端节点,提升扩展性。