Конструирование сервиса сокращения длинных ссылок

Сохраните связь уникального короткого кода с длинным URL в БД. POST создаёт ссылку, GET по коду находит исходный адрес и возвращает redirect.

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

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

Сохраните связь уникального короткого кода с длинным URL в БД. POST создаёт ссылку, GET по коду находит исходный адрес и возвращает redirect.

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

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

Условие

Необходимо спроектировать сервис, который:

  • Принимает полную ссылку (например, https://example.com/very/long/path).
  • Генерирует короткий уникальный идентификатор для этой ссылки.
  • Осуществляет переадресацию запросов с короткой ссылки на исходный адрес.

Ответ

Сохраните связь уникального короткого кода с длинным URL в БД. POST создаёт ссылку, GET по коду находит исходный адрес и возвращает redirect.

Генерируйте достаточно длинный случайный код или кодируйте уникальный ID; коллизии обрабатывайте через ограничение UNIQUE и повтор генерации. Проверяйте схему URL и запрещайте переводы строк в заголовках. Для масштабирования кэшируйте востребованные соответствия и разделяйте чтение с записью. Выбор постоянного или временного redirect зависит от возможности изменения ссылки, срока действия и требований аналитики.

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

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

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

Подробнее