2010-12-13 1 views
4

дал ссылку http://bit.ly/2994jsКаков самый быстрый способ 302 ссылки на его окончательный URL?

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

Java HttpClient? PHP с cURL? прочее?

ответ

2

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

+0

Метод также поддерживает одновременную передачу нескольких URL-адресов – dflems

+0

Кроме того, стоит упомянуть, что существуют ограничения для этого подхода (http://code.google.com/p/bitly-api/wiki/ApiDocumentation#Rate_Limiting) – dflems

+0

я дам вам голосование, потому что большинство ссылок, с которыми я работаю, - это бит. Так что это была хорошая находка! Похоже, я могу сразу вызвать 15 URL-адресов, что приятно. – James

3

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

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

+0

У меня был хороший опыт работы с cURL, а также – user489041

4

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

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

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

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

+1

+1: Полностью прибил. :) – shamittomar