Выбор ответа Junior Коды ответа спрашивают часто обновлено

401 или 403

Вопрос

Пользователь вошёл как обычный клиент и вызывает DELETE /admin/users/10. Что правильнее вернуть?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: 403 Forbidden: пользователь известен, но прав нет. 401 означает «не аутентифицирован»: нет токена, он просрочен или неверен, и сервер должен прислать WWW-Authenticate.

Варианты ответа

  1. 403 Forbidden: пользователь известен, но прав нетправильный ответ
  2. 401 Unauthorized: у пользователя нет нужных прав
  3. 404 Not Found: обычному клиенту ресурс не виден
  4. 400 Bad Request: метод не подходит для этой роли

Разбор

401 означает «не аутентифицирован»: нет токена, он просрочен или неверен, и сервер должен прислать WWW-Authenticate. 403 означает «аутентифицирован, но нельзя». Название 401 Unauthorized сбивает с толку, отсюда частая путаница. 404 иногда возвращают намеренно, чтобы скрыть существование ресурса, но это отдельное решение, а не правило. 400 про некорректный запрос, а запрос здесь корректен.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.