RESTful API限流

RESTful API限流

译自Rate limiting your RESTful API

限流:使用X-RateLimit-*HTTP头部和429状态码

当您的API广泛被应用程序和用户使用时,限流变得很有必要。

达到限流后,您的API应该返回以下HTTP状态代码:

429 Too Many Requests

但是不幸的是,HTTP标头没有标准名称,您可以使用该标准标头将限流告知用户:

Twitter使用以下标头:

  • X-Rate-Limit-Limit - 该endpoint上限流的上限
  • X-Rate-Limit-Remaining - 15分钟中剩余的请求次数
  • X-Rate-Limit-Reset - 以UTC秒为单位,限流重置之前的剩余时间

Github使用以下标头:

  • X-RateLimit-Limit - 每小时允许您发出的最大请求数。
  • X-RateLimit-Remaining - 当前限流中剩余的请求次数。
  • X-RateLimit-Reset - 以UTC秒为单位,当前限流的重置时间。

但是,使用Github的标准似乎比使用Twitter的标准的RESTful API框架更多,这就是为什么我建议您使用Github的HTTP标头进行限流(即X-RateLimit-LimitX-RateLimit-Remaining and X-RateLimit-Reset),只有一个例外。

不要使用Github的标准X-RateLimit-Reset标头。您可以保留相同的标头名称,但不要在此标头的值中显示时间戳,而应显示限流重置之前剩余的秒数。

为什么 ?因为HTTP规范指出日期格式应使用RFC 1123(即:星期五,2018年3月9日08:50:15 GMT)。因此,如果要在X-RateLimit-Reset标头中显示日期,则应使用此格式而不是时间戳,但是使用剩余秒数更为实用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值