4

给定链接http://bit.ly/2994js

在 302 重定向之后,最有效的使用方式或库是什么可以让您访问 bit.ly、fb.me 等的最终 URL?假设规模为每天 10+ 百万,并且能够跨服务器扩展。

Java HttpClient?PHP 与 cURL?其他?

4

3 回答 3

4

实现语言不太可能在性能方面产生太大影响——几乎无事可做。这都是网络延迟。使用自定义的网络堆栈可能会有所帮助,但除非我真的需要,否则我不会打扰。

我不确定 302 响应是否仍然能够保持与 HTTP 1.1 的连接 - 但如果可以,那真的是一个福音。这也是反对对每个 URL 使用 cURL(这将启动一个新进程,需要一个新连接)的论点,除非有某种方法可以将 cURL 置于批处理模式。(可能有——值得调查。)

重要的是确保您不会对任何服务器造成如此严重的攻击,以至于认为您正在发起 DDOS 攻击,而是在该限制内尽可能多地并行发出请求。

请注意,每天 10,000,000 次请求仅为每秒约 116 个请求。如果您有足够的网络连接并且目标服务器没有阻止您,那应该不难实现。

于 2010-12-13T19:49:01.127 回答
3

cURL 是最快的。因此,如果您想要绝对速度,请编写一个通过 cURL 执行的 bash 脚本。

但是,提出 10+ 百万个请求可能会很快让您的 IP 被他们禁止。

于 2010-12-13T19:48:15.183 回答
2

在 bit.ly 的情况下,有一个 API 调用 ( expand ) 从缩短的 URL 中获取目标 URL。其他 URL 缩短服务可能有类似的 API 调用。在这些情况下,您不必处理重定向。

于 2010-12-13T19:50:46.877 回答