401 vs 403: разница между аутентификацией и авторизацией

Объясняет, как отличить «нужно войти» от «нет прав доступа».

Вопреки названию, 401 Unauthorized на самом деле означает «не аутентифицирован». Он сообщает, что учётные данные отсутствуют или недействительны, и сервер через заголовок WWW-Authenticate указывает, какая аутентификация требуется. Часто проблема решается входом в систему или обновлением токена.

403 Forbidden означает, что вы аутентифицированы, но у вас нет прав доступа к этому ресурсу. Повторный вход даст тот же результат. Нужно проверить роли и права пользователя, владельца ресурса, правила IP и брандмауэра (WAF), а также области доступа OAuth.

Коротко: 401 означает «я не знаю, кто вы», а 403 — «я знаю, кто вы, но не могу разрешить». Из соображений безопасности некоторые серверы возвращают 404 вместо 403, чтобы скрыть само существование ресурса.