Как работает Google короткий URL-адрес? - PullRequest
1 голос
/ 06 января 2010

Как короткий URL Google может обслуживать так много URL-адресов в Интернете всего четырьмя символами, даже если алфавиты чувствительны к регистру?

http://goo.gl/SUWp

Скажите fn (некоторый url) -> четыре буквы для url, как они могут внезапно использовать ту же функцию, которая через пять раз дает пять букв для url? Как они узнают, будет ли это четырехбуквенный или пятибуквенный URL-адрес из URL?

Ответы [ 6 ]

9 голосов
/ 06 января 2010

26 букв * 2 (верхний / нижний регистр) = 52 ^ 4 (в степени 4) = 7311616 URL

если добавить цифры, это будет 62 ^ 4 = 14776336 URL.

чтобы у них было время, прежде чем добавить 5-ю букву / цифру

1 голос
/ 06 января 2010

В английском алфавите 26 букв. Нижний + Верхний это 52.

52 * 52 * 52 * 52 = 7.311.616 Они ограничены этим числом. Если у них заканчиваются 4-х буквенные URL-адреса, они могут без проблем обновиться до 5, не так ли?

Я не думаю, что добавление цифр является хорошей идеей для этого, поскольку 0 (ноль) и O, 1 (один) и l (L), I (верхний регистр i) и l (нижний регистр L) очень похожи ,

1 голос
/ 06 января 2010

Вот как:

Google URL Shortener в настоящее время доступно для продуктов Google, а не для более широкого использования.

Я не верю, что даже у Google есть 7 миллионов страниц, которые можно сократить.

Edit:

Видимо вы можете сократить URL-адреса с помощью панели инструментов Google :

Google URL сокращение не является автономный сервис; ты не можешь использовать это сокращать ссылки напрямую. В настоящее время, Google URL Shortener доступен только из панели инструментов Google и FeedBurner. Если услуга окажется полезно, мы можем в конечном итоге сделать это доступны для более широкой аудитории в будущее.

Тем не менее, это не «широкое» потребительское использование. Если они закончатся, они добавят больше букв.

Ответ на обновленный вопрос:

Скажите fn (немного url) -> четыре буквы для URL, как они могут внезапно использовать ту же функцию, которая через пять раз дает пять букв для URL?

Google не просто хэширует URL-адрес, а просто использует его (помните, хэши - это только 1 способ, поэтому вы все равно не можете получить исходный URL-адрес - он должен храниться в базе данных). Они могут начинаться с хэша, а затем выполнить поиск в базе данных, чтобы увидеть, существует ли этот ключ. Если это не так, он будет использоваться в качестве ключа. Если он уже существует, они будут использовать какой-то другой метод для выполнения хэширования или манипулирования хешем таким образом, чтобы сделать его уникальным.

Как они узнают, будет ли это четырехбуквенный или пятибуквенный URL-адрес из URL?

Если в конце URL-адреса есть 4 буквы, то как они узнают ...

1 голос
/ 06 января 2010

Он работает так же, как и все другие сокращатели - символы являются уникальным идентификатором URL, который был сокращен. С 52 буквами (верхний и нижний регистр), а также числами и специальными символами можно работать с различными комбинациями.

0 голосов
/ 06 января 2010

Я не знаю, как это делает Google. Но я представляю, как можно реализовать короткий URL-адрес, увеличивая значение с помощью символов 0-9a-zA-Z - по сути, используя систему счисления с основанием 62. Таким образом, метод, который генерирует значение, может искать последнее использованное значение, а затем увеличивать его на единицу. Например: abcz + 1 = abcA. Или: ZZZZ + 1 = 00000.

0 голосов
/ 06 января 2010

(26 + 26 + 10) * (26 + 26 + 10) * (26 + 26 + 10) * (26 + 26 + 10) = 14776336

Это 26 строчных, 26 прописных и 10 цифр для 62 возможных символов. И на самом деле я думаю, что это, скорее всего, кодированное представление base-64 некоторого другого значения, так что число, вероятно, больше похоже на 16777216.

...