跳至主要内容
短.be

速率限制

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

2026 年 8 月 23 日 / 约 1 分钟阅读

安全

速率限制 (Rate Limiting) 是对 API 或服务的请求数量在一定时间窗口内设置上限的机制。例如「每分钟最多 60 个请求」「每天最多 1,000 个请求」,超出上限的请求会收到 HTTP 429 (Too Many Requests) 响应。这个状态码由 RFC 6585 定义,用于告知客户端在一定时间内发送了过多请求。

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

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

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

开发者在使用 API 时应对速率限制做好应对:检查响应头,根据剩余请求数调整请求频率。表示剩余量的响应头名称因服务而异,X-RateLimit-Limit、X-RateLimit-Remaining 这类名称是长期形成的惯例;标准的 RateLimit 响应头仍在制定中,截至 2026 年 8 月还处于 Internet-Draft 阶段。收到 429 响应时,如果带有 Retry-After 头,就按它指示的时间等待后重试;如果没有该头,或者等待后重试仍然返回 429,则逐步延长等待时间,即指数退避。两者是不同的手段,按 Retry-After 等待本身并不等于指数退避。

这篇文章对您有帮助吗?

相关术语

API 速率限制

限制客户端在特定时间内可以发送的 API 请求数量,防止滥用和保护服务稳定性。

API 密钥

用于认证和控制 API 访问的字符串。用于识别调用者身份并限制访问权限。

输入验证

对用户提交的数据进行检查和过滤,确认其是否符合预期格式,有助于降低安全风险。

短链接滥用

利用短链接服务进行钓鱼、恶意软件传播、垃圾信息等非法活动的行为。需要服务提供商和用户双方共同防范。

Webhook

当特定事件发生时,服务器自动向指定 URL 发送 HTTP 请求的机制。用于实现实时联动。

重定向缓存

浏览器或 CDN 将重定向响应保存一定期间,在再次访问时省去向源服务器查询的机制。

相关文章

网址缩短 API 使用指南 - 通过程序生成短链接

解说如何通过程序使用网址缩短服务的 API。介绍请求格式、响应结构和实现示例。

短链接安全指南 - 钓鱼风险识别与安全分享最佳实践

全面介绍短链接的安全风险和防护方法。涵盖钓鱼攻击识别、恶意链接检测和安全分享的最佳实践。

点击欺诈 (点击欺骗) 的原理与对策 - 保护短链接的安全指南

解说点击欺诈的手法及其对短链接的影响。介绍机器人检测、速率限制、CAPTCHA 等实践性防御策略和不正当点击的检测方法。

常见问题

触发速率限制后该怎么办?
检查 HTTP 429 响应中的 Retry-After 头,按它指示的时间等待后重试。Retry-After 既可以是等待的秒数,也可以是可以重新发送请求的日期时间,因此实现时最好同时支持两种格式。该响应头并非总会返回,没有时就逐步延长等待时间后重试。如果自己发送的请求并不多却触发了限制,请确认限制的计数单位:按 IP 地址计数的服务会把同一出口 IP 下的用户 (例如共享线路或公司网络) 合并计算。如果频繁触发限制,应增大请求间隔或考虑升级到更高级别的套餐。
速率限制一般设置为多少?
因服务而异。免费方案通常为每分钟 10 至 60 个请求,付费方案为每分钟 100 至 1,000 个请求。短链接服务的 API 一般会限制每小时可创建的链接数,有时还会同时设置每分钟的上限。具体数值因服务和套餐差异很大,使用前请查阅各服务的 API 文档。
如何在自己的 API 中实现速率限制?
常见方案包括 Nginx 的 limit_req 模块、API 网关 (如 AWS API Gateway) 的内置功能、以及使用 Redis 实现令牌桶算法。小规模应用仅靠 Nginx 配置就能满足需求。

把知识用到真实链接上

免费缩短网址