Как URL-корректор вычисляет URL-адрес? Как они работают?
Как URL shortener, например bit.ly вычислить случайный ключ для каждой ссылки? Какой алгоритм мне нужно знать, чтобы создать свой собственный?
Ответы
Ответ 1
До сих пор я нашел код http://briancray.com/2009/08/26/free-php-url-shortener-script/
function getShortenedURLFromID ($integer, $base = ALLOWED_CHARS)
{
$length = strlen($base);
while($integer > $length - 1)
{
$out = $base[fmod($integer, $length)] . $out;
$integer = floor( $integer / $length );
}
return $base[$integer] . $out;
}
и более сложный ответ Marcel J., упомянутый выше.
Ответ 2
Я думаю, что они НЕ делают случайным новым ключом и проверяют, существует ли в базе данных, потому что это медленнее, чем просто использовать секвенциальное число и применять некоторый алгоритм criptography algoritm to преобразовать секвенциальный идентификатор в строку UNIQUE.
Пример:
idUrl = 1003;
urlCode = doSomething(idUrl); // 161Llz
URL для использования:
http://bit.ly/161Llz
Tks: mykhal и nick johnson
Ответ 3
Возможно, они хранят его в базе данных и просто дают вам идентификатор ссылки. Когда вы запрашиваете этот ключ, они просматривают в своей базе данных и перенаправляют вас на сохраненную реальную ссылку. Чтобы закодировать идентификатор, можно использовать base64 (или подобное).
Ответ 4
Скорее всего, они хранят его в базе данных и просто генерируют ключ случайным образом. Я предполагаю это, потому что вы можете сделать свой собственный ключ, и если бы они просто расшифровали его, вы бы не смогли его самостоятельно выбрать.
Что касается того, как это сделать, вы можете просто создать базу данных в mySQL и провести ее на ключевом и полном сайте. Просто найдите его для ключа, а затем перенаправьте пользователя на полный сайт.