无需登录 数据私有 本地保存

API 速率限制头解析器 - 解读 X-RateLimit 信息

35
0
0
0
粘贴 HTTP 响应头
支持 X-RateLimit-*、RateLimit-*、Retry-After 等常见头。自动识别并解析。
手动编辑字段
使用率仪表盘
等待输入
使用进度 0%
0 / 0
总配额
--
已使用
--
剩余
--
使用率
--
窗口重置时间 --
--
解析详情
响应头字段 解析值 说明
请粘贴响应头或使用预设数据
常见 API 速率限制参考
平台 / API 限制窗口 默认配额 响应头风格 备注
GitHub 1 小时(滚动) 5000(认证)/ 60(未认证) X-RateLimit-* 慷慨
X (Twitter) 15 分钟 根据端点不同 x-rate-limit-*(小写) 端点各异
OpenAI 1 分钟 / 1 天 根据 Tier 等级 x-ratelimit-*-requests 多层限制
Discord 1 秒(全局) 50/秒(全局) X-RateLimit-* + Retry-After 严格
Cloudflare 1 分钟 1200/分钟 自定义头 企业级
Stripe 1 秒(突发) 100/秒(写入) Request-ID + 429 突发限制
常见问题 (FAQ)
什么是 API 速率限制(Rate Limiting)?
API 速率限制是服务端对客户端在特定时间窗口内可发送请求数量的上限。这是一种保护机制,防止单个客户端过度消耗服务器资源,确保所有用户都能公平访问 API。当超过限制时,API 通常会返回 HTTP 429 Too Many Requests 状态码,并在响应头中包含 X-RateLimit-*Retry-After 等信息告知客户端当前状态。
常见的速率限制响应头有哪些?
最常见的速率限制头包括:
X-RateLimit-Limit:时间窗口内的总请求配额
X-RateLimit-Remaining:当前窗口内剩余的请求次数
X-RateLimit-Reset:配额重置的 Unix 时间戳(秒)
X-RateLimit-Used:已使用的请求次数
Retry-After:达到限制后建议等待的秒数(或 HTTP 日期)
X-RateLimit-Resource:标识限制适用的资源类型(如 GitHub 的 core/search)
不同平台可能使用略有差异的命名,例如 OpenAI 使用 x-ratelimit-remaining-requests 等格式。
如何计算速率限制的使用百分比?
使用率计算公式为:(Limit - Remaining) / Limit × 100% 或直接使用 Used / Limit × 100%。例如 GitHub 返回 Limit=5000,Remaining=3250,则已使用 1750,使用率为 35%。一般建议当使用率超过 75% 时开始采取节流措施,超过 90% 时紧急降低请求频率以避免触发 429 错误。
触发 HTTP 429 错误后应该怎么处理?
收到 429 响应时:
1. 检查 Retry-After 头:它会明确告知需要等待的秒数
2. 实现指数退避:首次等待 1 秒,随后 2 秒、4 秒、8 秒...逐步增加
3. 添加抖动(Jitter):在退避时间中加入随机延迟,避免多个客户端同时重试造成"惊群效应"
4. 检查 X-RateLimit-Reset:了解窗口何时完全重置,规划后续请求节奏
5. 缓存响应:对不频繁变化的数据使用本地缓存,减少不必要的 API 调用
不同平台的速率限制策略有什么主要区别?
固定窗口:在固定时间段内(如每分钟)限制请求数,窗口结束时重置。简单但可能在窗口边界出现突发流量
滑动窗口:动态计算最近一段时间内的请求数,更平滑但实现复杂
令牌桶:以恒定速率填充令牌,每次请求消耗令牌。允许短时突发,长期平均受控(如 Stripe)
漏桶:请求进入队列以固定速率处理,严格平滑流量
分层限制:如 OpenAI 同时限制 RPM(每分钟请求数)和 TPM(每分钟 Token 数),需要同时关注多个维度的使用率
如何优化 API 调用以避免触发速率限制?
使用条件请求:利用 ETag / If-None-Match 和 Last-Modified / If-Modified-Since 头,当数据未变更时返回 304 不消耗配额
批量操作:优先使用支持批量处理的端点,一次请求完成多个操作
合理缓存:在客户端或中间层缓存响应,设置合适的 TTL
请求合并:将多个独立请求合并为一个复合请求
监控使用率:持续跟踪 X-RateLimit-Remaining,在接近阈值时主动降速
升级认证:使用 API Key 或 OAuth 通常能获得更高配额(如 GitHub 未认证用户仅 60 次/小时,认证用户 5000 次/小时)