Получить доступ

Что означает код ответа 404?

JuniorSpring MVC и RESTSpring
Ещё спрашивают так:
  • Что значит Not Found?
Коротко

404 Not Found — ресурса по этому адресу нет. Это группа 4xx — ошибка на стороне клиента; 5xx — ошибка сервера.

  • Неверный путь или несуществующий id
  • Иногда 404 отдают на чужой ресурс, чтобы не раскрывать его существование
  • 410 Gone — ресурс удалён навсегда

А ещё В Spring — ResponseEntity.notFound() или исключение с @ResponseStatus

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Достаточно помнить логику групп, а не весь список: 2xx — успех, 3xx — перенаправление, 4xx — проблема в запросе клиента, 5xx — сбой на сервере. В группе 4xx стоит различать 401 (не аутентифицирован), 403 (аутентифицирован, но прав нет), 404 (нет ресурса), 409 (конфликт состояния), 429 (превышен лимит). Пустое тело при успехе — это 204. Классическая ошибка проектирования — отдавать 200 с полем error внутри: тогда ломаются повторы, кэширование и мониторинг, которые смотрят на статус.

Что хотят услышать

  • Смысл кода и группы 4xx.

Частые ошибки

  • Отдавать 200 при ошибке, помещая её описание в тело.
  • Возвращать 500 там, где виноват запрос клиента.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Запрошенный ресурс не найден — ошибка на стороне клиента
  • ✗Внутренняя ошибка сервера
  • ✗Клиент не аутентифицирован
  • ✗Запрос выполнен успешно, но тело ответа пустое

Что спросят дальше

  • Чем 401 отличается от 403?
  • Какой статус вернуть при успешном создании ресурса?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем