Что означает код ответа 404?
- Что значит Not Found?
404 Not Found — ресурса по этому адресу нет. Это группа 4xx — ошибка на стороне клиента; 5xx — ошибка сервера.
- Неверный путь или несуществующий id
- Иногда 404 отдают на чужой ресурс, чтобы не раскрывать его существование
- 410 Gone — ресурс удалён навсегда
А ещё В Spring — ResponseEntity.notFound() или исключение с @ResponseStatus
Подробно
Достаточно помнить логику групп, а не весь список: 2xx — успех, 3xx — перенаправление, 4xx — проблема в запросе клиента, 5xx — сбой на сервере. В группе 4xx стоит различать 401 (не аутентифицирован), 403 (аутентифицирован, но прав нет), 404 (нет ресурса), 409 (конфликт состояния), 429 (превышен лимит). Пустое тело при успехе — это 204. Классическая ошибка проектирования — отдавать 200 с полем error внутри: тогда ломаются повторы, кэширование и мониторинг, которые смотрят на статус.
Что хотят услышать
- Смысл кода и группы 4xx.
Частые ошибки
- Отдавать 200 при ошибке, помещая её описание в тело.
- Возвращать 500 там, где виноват запрос клиента.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Внутренняя ошибка сервера при обработке запроса
- ✓Ресурс не найден — ошибка на стороне клиента
- ✗Клиент не аутентифицирован и должен войти в систему
- ✗Запрос выполнен успешно, но тело ответа пустое
Что спросят дальше
- Чем 401 отличается от 403?
- Какой статус вернуть при успешном создании ресурса?
Разбор темы
- REST API: статусы, согласование и семантика
Ресурсы и HTTP-глаголы, статус-коды как контракт, content negotiation и message converters, идемпотентность и версионирование.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.