You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于公网IP的API限流:Github API未认证请求限流机制探究

探究GitHub API未认证请求的限流机制

最近研究GitHub API的限流规则时,我注意到一个关键细节:未认证请求的限流上限是每小时60次,而且这类限流是和请求的源IP地址绑定的,不是和发起请求的用户账号关联。

为了搞清楚GitHub用来跟踪限流的HTTP响应头,以及触发限流后的具体表现,我写了一段简单的Bash脚本来快速耗尽这60次的请求额度,很快就得到了想要的响应结果。

核心发现的细节

  • 未认证请求的限流阈值:每小时60次,基于请求发起的IP地址
  • 限流相关的HTTP响应头:在每次请求的响应里,你能看到这些关键头信息:
    • X-RateLimit-Limit:当前的限流上限值(未认证时就是60)
    • X-RateLimit-Remaining:剩余的可用请求次数
    • X-RateLimit-Reset:限流额度重置的时间戳
  • 触发限流后的响应:当请求次数耗尽时,GitHub会返回403 Forbidden状态码,响应体里会包含类似这样的提示:

    API rate limit exceeded for [你的IP地址]. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)

我用的测试Bash脚本示例

#!/bin/bash
# 循环发起未认证的GitHub API请求,快速触发限流
for i in {1..70}; do
    echo "第 $i 次请求..."
    curl -I https://api.github.com/users/octocat
    echo -e "\n"
    sleep 1
done

运行这个脚本后,前60次请求会正常返回200 OK,并在响应头里显示剩余请求次数逐渐减少;当到第61次请求时,就会收到403 Forbidden的响应,同时拿到限流触发的提示信息。

内容的提问来源于stack exchange,提问作者macalaca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:56:09