跳至主要内容
短.be

速率限制

在一定时间内限制 API 或服务的请求次数的机制。用于保护服务器并确保公平使用。

2025年11月25日 · 约 1 分钟阅读

安全

速率限制 (Rate Limiting) 是对 API 或服务的请求数量在一定时间窗口内设置上限的机制。例如「每分钟最多 60 个请求」「每天最多 1,000 个请求」,超出上限的请求会收到 HTTP 429 (Too Many Requests) 响应。

速率限制有三个主要目的:第一是保护服务器 (防止大量请求导致服务宕机),第二是确保公平性 (防止个别用户独占资源),第三是成本控制 (管理云服务的按量计费)。

短链接服务中,速率限制应用于多个场景:URL 缩短 API 的请求次数限制 (防止垃圾链接的批量生成)、短链接访问次数限制 (缓解 DDoS 攻击)、管理后台的登录尝试次数限制 (防止暴力破解) 等。

速率限制的算法主要有四种:固定窗口 (每分钟重置计数器)、滑动窗口 (持续计算最近一分钟内的请求数)、令牌桶 (以固定速率补充令牌,每次请求消耗一个令牌)、漏桶 (以固定速率处理请求,超出部分排队等待)。

开发者在使用 API 时应对速率限制做好应对:检查响应头 (X-RateLimit-Limit、X-RateLimit-Remaining、Retry-After),根据剩余请求数调整请求频率。收到 429 响应时,建议按照 Retry-After 头的值等待后重试,采用指数退避策略。相关书籍可在 Amazon 上查找。

分享到 XHatena

这篇文章对您有帮助吗?

相关术语

相关文章

常见问题

触发速率限制后该怎么办?
检查 HTTP 429 响应中的 Retry-After 头,等待指定的秒数后重试。如果频繁触发限制,应增大请求间隔或考虑升级到更高级别的套餐。
速率限制一般设置为多少?
因服务而异。免费方案通常为每分钟 10 至 60 个请求,付费方案为每分钟 100 至 1,000 个请求。短链接服务的 API 通常每小时允许 100 至 500 次 URL 缩短操作。
如何在自己的 API 中实现速率限制?
常见方案包括 Nginx 的 limit_req 模块、API 网关 (如 AWS API Gateway) 的内置功能、以及使用 Redis 实现令牌桶算法。小规模应用仅靠 Nginx 配置就能满足需求。

想要创建短链接吗?

免费缩短网址