我正在研究Github API并在其费率Limiting section
中遇到以下内容对于未经身份验证的请求,速率限制允许每小时最多60个请求。未经身份验证的请求与原始IP地址相关联,而不是与用户发出请求相关联。
我很想知道哪些HTTP标头用于跟踪限制以及超出限制时会发生什么,所以我写了一些Bash来快速超过60个请求/小时限制:
for i in `seq 1 200`;
do
curl https://api.github.com/users/diegomacario/repos
done
很快我收到了以下回复:
{
"message": "API rate limit exceeded for 104.222.122.245. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)",
"documentation_url": "https://developer.github.com/v3/#rate-limiting"
}
似乎Github正在计算响应中提到的来自公共IP的请求数,以确定何时限制客户端。根据我对局域网的理解,有许多设备共享这个公共IP。 局域网中的每台设备是否都限制此IP速率,因为我超出了限制?。另一方面,速率限制的非认证端点还有哪些其他方式?