Выбор ответа Junior Коды ответа спрашивают часто обновлено
401 или 403
Вопрос
Пользователь вошёл как обычный клиент и вызывает DELETE /admin/users/10. Что правильнее вернуть?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 403 Forbidden: пользователь известен, но прав нет. 401 означает «не аутентифицирован»: нет токена, он просрочен или неверен, и сервер должен прислать WWW-Authenticate.
Варианты ответа
- 403 Forbidden: пользователь известен, но прав нетправильный ответ
- 401 Unauthorized: у пользователя нет нужных прав
- 404 Not Found: обычному клиенту ресурс не виден
- 400 Bad Request: метод не подходит для этой роли
Разбор
401 означает «не аутентифицирован»: нет токена, он просрочен или неверен, и сервер должен прислать WWW-Authenticate. 403 означает «аутентифицирован, но нельзя». Название 401 Unauthorized сбивает с толку, отсюда частая путаница. 404 иногда возвращают намеренно, чтобы скрыть существование ресурса, но это отдельное решение, а не правило. 400 про некорректный запрос, а запрос здесь корректен.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.