Какой самый быстрый способ 302 ссылки на его окончательный URL? - PullRequest
4 голосов
/ 13 декабря 2010

с учетом ссылки http://bit.ly/2994js

Какой самый эффективный способ или библиотека для использования позволят получить окончательный URL-адрес bit.ly, fb.me и т. Д.после 302 редиректов?Предположим, что масштаб составляет более 10 миллионов из них в день с возможностью масштабирования по серверам.

Java HttpClient?PHP с CURL?другой

Ответы [ 3 ]

4 голосов
/ 13 декабря 2010

Язык реализации вряд ли сильно повлияет на производительность - тут практически нечего делать. Это будет задержка в сети. Возможно, что использование настроенного сетевого стека может помочь, но я бы не стал беспокоиться, если бы мне действительно не нужно.

Я не уверен, что ответ 302 все еще способен поддерживать соединение с HTTP 1.1 - но если это возможно, это действительно может быть благом. Это также аргумент против с использованием cURL (который собирается начать новый процесс, требующий нового соединения) для каждого URL, если только не существует способа перевести cURL в пакетный режим. (Может быть, стоит провести расследование.)

Важно убедиться, что вы не ударяете по какому-либо серверу так сильно, что он думает, что вы запускаете DDOS-атаку, а выполняете столько запросов параллельно, сколько можете в пределах этого ограничения.

Обратите внимание, что 10000000 в день - это всего ~ 116 запросов в секунду. Если у вас есть адекватное сетевое соединение, и целевые серверы не блокируют вас, это не должно быть сложно.

3 голосов
/ 13 декабря 2010

CURL самый быстрый.Итак, если вам нужна абсолютная скорость, начните писать сценарий bash, который делает это с помощью cURL.

Однако, если вы сделаете более 10 миллионов запросов, ваш IP может быть забанен очень скоро.

2 голосов
/ 13 декабря 2010

В случае bit.ly, есть вызов API ( expand ), который получает целевой URL-адрес из сокращенного URL-адреса.Другие сервисы сокращения URL могут иметь аналогичные вызовы API.В этих случаях вам не придется обрабатывать перенаправление.

...