@maxxxixxxx

Как устроен сервис коротких ссылок?

Сервисы по укорочению ссылок как то превращают длинный url в короткий.
Причем после адреса идет очень мало букв:
goo.gl/6n3Y77

Вот в этом случае 6n3Y77

Это 62^6 комбинаций.

Вопрос: есть ли какой нибудь алгоритм типа base64, чтобы не генерировать случайно число и не сравнивать его с базой на уникальность при генерации?
  • Вопрос задан
  • 2725 просмотров
Решения вопроса 1
@memba
Это идентификатор (число) закодированное в base62.
Полученную строку можно раскодировать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
deadbyelpy
@deadbyelpy
веб-шмеб
CRC32
но url все равно придется хранить, т.к. обратно не получится.
base62, короткая ссылка будет в 1.5 раза больше чем начальная
Ответ написан
@Snewer
Сервис устроен до безобразия просто. Достаточно одной таблицы в бд:
4986b1156c7f4c7699b71857dfed383d.png
т. е. при добавлении новой ссылки просто добавляется новая строка, и возвращается ее ид.
ид строки представляют в base62 / 64 / etc. виде (впрочем, можно и цифрами оставлять).

При запросе сокращенной страницы, получают ее идентификатор, декодируют, достают соответствующую строку из БД, и редиректят на нее.

Для написания своего алгоритма изучите системы счисления. Переводы между десятичной и системой счисления со своим набором символов (алфавитом).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы