@maxxxixxxx

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

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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
24 апр. 2024, в 20:24
10000 руб./за проект
24 апр. 2024, в 19:51
1000 руб./за проект