Сервис генерации коротких URL

Храните соответствие короткого кода исходному URL, дату истечения и владельца. Создание проверяет допустимость URL и лимит, переход проверяет срок, а аналитику записывает асинхронно.

Короткий ответ

Что ответить на собеседовании

Храните соответствие короткого кода исходному URL, дату истечения и владельца. Создание проверяет допустимость URL и лимит, переход проверяет срок, а аналитику записывает асинхронно.

Подробный разбор

Ответ с пояснениями

Условие

Создайте сервис, который преобразует длинные URL‑адреса в короткие варианты и возвращает их клиенту. Требования к функционалу:

  • преобразование «длинный URL → короткий URL» (короткая ссылка должна быть отправлена в ответе);
  • ограниченный срок жизни каждой ссылки;
  • у пользователей могут быть имена (не требуется полноценная система управления доступом);
  • реализовать ограничение частоты запросов (rate limiting);
  • собрать и предоставить аналитику использования ссылок.

Ответ

Храните соответствие короткого кода исходному URL, дату истечения и владельца. Создание проверяет допустимость URL и лимит, переход проверяет срок, а аналитику записывает асинхронно.

POST /links возвращает короткий адрес; GET /{code} делает временный redirect, чтобы управлять истечением и учитывать переходы. Код должен быть уникальным с обработкой коллизии в БД. Кэш не должен жить дольше ссылки. Разрешайте только допустимые схемы URL; не загружайте произвольные адреса сервером без SSRF-защиты. Имя пользователя не является доказательством личности. Для аналитики определите события, дедупликацию ботов и минимальный состав сохраняемых данных.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее