RESTful架构风格的理解

本文介绍了RESTful架构的设计原则和约束规范,包括以资源为中心的设计、无状态的网络协议等,并探讨了这些原则带来的优势,例如简化交互过程、提高可伸缩性和容错性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 什么是RESTful
    1. Representational State Transfer 具象状态传输
    2. 是一种软件架构风格,设计风格,提供一种设计原则和约束规范。
    3. 用户客户端和服务器之间的软件交互。
    4. 优点:简洁,有层次,易于实现缓存。
  •  设计原则
    1. 以资源为中心设计
    2. 无状态的网络协议
    3. 分层系统
    4. 可缓存
    5. 统一接口
  • 深入理解设计原则
    1. 无状态的网络协议
      1. 在基于状态的Web服务中,Client与Server交互的信息(如:用户登录状态)会保存在Server的Session中。再这样的前提下,Client中的用户请求只能被保存有此用户相关状态信息的服务器所接受和理解,这也就意味着在基于状态的Web系统中的Server无法对用户请求进行负载均衡等自由的调度(一个Client请求只能由一个指定的Server处理)。同时这也会导致另外一个容错性的问题,如果指定的Server在Client的用户发出请求的过程中宕机,那么此用户最近的所有交互操作将无法被转移至别的Server上,即此请求将无效化
      2. 好处,降低延迟,负载均衡设计,易于扩展
      3. 解决资源授权问题,用户自己带着状态(token等)访问资源。
  • 设计规范
    1. 以资源为中心的URL设计
    2. 尽量使用https
    3. 注明api地址和版本 https://api.github.com/v3
    4. 使用正确的http方法,get,post,put,delete
    5. URL不包含动作,仅指明资源路径地址,添加动作或者方法可能会导致后期出现大量的接口,导致混乱而且难以维护。不符合crud的情况,用post方法
    6. 资源状态可控,limit,page,field等字段控制资源输出
    7. 返回合适的状态码,200(成功)300(重定向)400(请求错误)500(服务器错误)
    8. 返回详细的错误信息,用户名错误,密码错误等
    9. 返回适当的解释码,6000,7000,8000等
    10. 验证和授权,没通过验证401,无授权404(这是为了防止私有存储库意外泄露给未经授权的用户)
    11. 限流,登陆限制,短信、支付等限制。防止ddos攻击,保重用户数据安全。
    12. 开发中完全不必为了RESTful而RESTful,不是所有真理都适合所有情况,取其精华即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值