Instagram 是否由于速率限制和/或某种形式的请求过滤而返回 HTTP 500 响应?

问题描述 投票:0回答:6

我正在开发一种工具,用于检查网页中链接的完整性。

我注意到,如果有人在浏览器中访问给定的 URL,那么各种 Instagram URL 都会返回 HTTP 500 响应,并且会得到 HTTP 200 响应以及预期的资源。

这是在像浏览器用户那样请求常规 Instagram URL 时,而不是在使用 REST API 时。

使用 cURL 的典型请求/响应:

curl -v http://instagram.com/p/YKTkxHBA-P/
* About to connect() to instagram.com port 80 (#0)
*   Trying 54.225.159.246... connected
> GET /p/YKTkxHBA-P/ HTTP/1.1
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: instagram.com
> Accept: */*
> 
< HTTP/1.1 500 Server Error
< Cache-Control: no-cache
< Content-Type: text/html
< Date: Tue, 15 Oct 2013 08:31:09 GMT
< Server: nginx
< Content-Length: 87
< Connection: keep-alive
< 
<html><body><h1>500 Server Error</h1>
An internal server error occured.
</body></html>
* Connection #0 to host instagram.com left intact
* Closing connection #0

在这种情况下,我确实获得了 HTTP 200 响应一段时间,但现在一直获得 HTTP 500 响应。

这都是特定于给定主机的;这样的 URL,即使在使用 cURL 发送请求时,也会从其他机器返回 HTTP 200 响应。

由于这是特定于发送请求的主机,我怀疑正在进行某种形式的速率限制或 IP 请求过滤,但是我找不到相关的文档。

由于给定 IP 被拒绝访问,Instagram 会像上面那样正式返回 HTTP 500 响应吗?

instagram internal-server-error
6个回答
0
投票

这是IP速率限制。如果你想跳过你联系 Instagram 的部分并等待他们在那里工作的猴子团队来解决问题,只需为你的服务器分配 1000 个 IP 并随机循环处理你的请求。你不会再看到 500 的了。

干杯。


0
投票

昨天我收到了来自 Instagram 支持的邮件。

...
嗨,

我们对服务器配置进行了一些更改,请检查您是否仍然看到 500 错误?

谢谢,
...

..好吧,我百分百确定那些 500ers 不是来自 IG 的 IP 速率限制,因为它们也没有事先返回。

我一直在检查日志文件并发现一对 502(错误的网关)和“主机无法访问”,尽管在 2014-04-14 18:28:56(太平洋标准时间)之后 500 本身不多了.

看来他们在将近一个月后终于解决了... ^_^


0
投票

我有完全相同的问题 - 不幸的是没有办法解决它。发生这种情况是因为有两个请求。起初我以为这是我的 IP 或者可能是我的 UDID,直到我从我自己的手机和我的家庭 IP 但使用不同的 Instagram ID 登录我的应用程序,它终于再次按预期工作。最终,随着时间的推移,我可以再次使用自己的 ID,但请求有限。我不太确定算法是如何工作的,但处理的时间越长,我可以再次使用的请求就越多。

此外,这是在实际应用程序中的实际 iPhone 上实时进行的 - 而不是在 iOS sim 或 Instagram API 控制台上,仅供参考。

要点:请求限制基于用户(每个用户每小时 5000 个请求)...没有 IP 速率限制。

希望这有帮助:)

克莱顿


0
投票

我有同样的问题。正如我所说,您必须获得对 API 的额外访问权限,我的意思是您应用程序中的沙盒模式不允许您使用所有 API。要获得额外的许可,请转到客户偏好,标签“许可”。


-1
投票

这似乎与 curl 版本有关,我在 4 台不同的机器 10 个不同的 ip 上也遇到了 v 7.22.0 的相同问题,而 v7.30.0 和 v7.19.7 工作得很好。 目前正在进一步调查。


-2
投票

我几乎 100% 肯定会发生这种情况,因为域/IP 地址已被 Instagram API 屏蔽。

原因:

  1. 用于在浏览器中获取 JSON。从 webservice 获取 cURL 无效。
  2. 我将我的确切应用程序从我的主域(如果该应用程序不起作用)复制到另一个域。同样的应用程序工作。

奇怪的是你得到的是“500 Internal Error”而不是“你的 IP 被阻止”的消息。

© www.soinside.com 2019 - 2024. All rights reserved.