К списку
Безопасность и авторизацияMiddleТехническое

Типичные HTTP-статусы при ошибках авторизации в API

Краткий ответ

При проблемах с авторизацией чаще всего возвращаются коды 401 Unauthorized и 403 Forbidden. Первый сигнализирует о необходимости аутентификации, второй — о запрете доступа при недостаточных правах.

Развёрнуто

Краткий ответ

При сбоях авторизации веб-сервер возвращает HTTP-коды 401 Unauthorized, если пользователь не прошёл аутентификацию, и 403 Forbidden, когда доступ запрещён из-за отсутствия прав.


Как это работает

В контексте HTTP-протокола авторизация и аутентификация — разные процессы.

  • 401 Unauthorized означает, что клиент не предоставил или предоставил неверные учётные данные. Сервер требует их для доступа к ресурсу.
  • 403 Forbidden возвращается, если пользователь аутентифицирован, но не обладает нужными правами для выполнения действия или просмотра ресурса.
Код статуса Значение Когда используется
401 Неавторизован Отсутствует или неверный токен/логин
403 Доступ запрещён Недостаточно прав, несмотря на авторизацию

Пример

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="example"

HTTP/1.1 403 Forbidden
Content-Type: application/json

{"error": "Доступ запрещён: недостаточно прав"}

Первый ответ указывает, что клиент должен пройти аутентификацию, второй — что пользователь аутентифицирован, но не имеет доступа.

Что важно знать на собеседовании

  • Код 401 требует от клиента повторной аутентификации.
  • Код 403 означает, что аутентификация пройдена, но ресурс запрещён.
  • Неправильное использование этих кодов ухудшает безопасность и UX.
  • Аутентификация и авторизация — разные этапы контроля доступа.
  • В API важно корректно дифференцировать эти статусы для отладки и безопасности.

Тема: Безопасность и авторизация | Уровень: middle