Сохраните связь уникального короткого кода с длинным URL в БД. POST создаёт ссылку, GET по коду находит исходный адрес и возвращает redirect.
Конструирование сервиса сокращения длинных ссылок
Сохраните связь уникального короткого кода с длинным URL в БД. POST создаёт ссылку, GET по коду находит исходный адрес и возвращает redirect.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо спроектировать сервис, который:
- Принимает полную ссылку (например, https://example.com/very/long/path).
- Генерирует короткий уникальный идентификатор для этой ссылки.
- Осуществляет переадресацию запросов с короткой ссылки на исходный адрес.
Ответ
Сохраните связь уникального короткого кода с длинным URL в БД. POST создаёт ссылку, GET по коду находит исходный адрес и возвращает redirect.
Генерируйте достаточно длинный случайный код или кодируйте уникальный ID; коллизии обрабатывайте через ограничение UNIQUE и повтор генерации. Проверяйте схему URL и запрещайте переводы строк в заголовках. Для масштабирования кэшируйте востребованные соответствия и разделяйте чтение с записью. Выбор постоянного или временного redirect зависит от возможности изменения ссылки, срока действия и требований аналитики.