Коды состояния · код401Не авторизован

Что означает ответ 401 Не авторизован, кто виноват, что делать посетителю и что — владельцу сервера.

Открыть справочник на этом коде
Что происходит

Сервер не знает, кто вы

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="Restricted"

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

Код
Кто виноватОшибка клиента
Класс4xx Ошибка клиента
Заголовки
WWW-Authenticateкакой способ входа ожидается
01

Что делать

Если это чужой сайт

Войти заново — этого хватает в подавляющем большинстве случаев: сессия истекла. Если вход не помогает и вы уверены, что доступ должен быть, дело уже не в 401: сервер вас узнал бы и ответил 403.

Если это ваш сервер

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

02

С чем путают

403Доступ запрещён

сервер вас узнал, но действие запрещено. Перелогин здесь не поможет — дело в правах.

403
407Нужна авторизация на прокси

то же самое, но требует аутентификации прокси, а не сам сайт.

407
404Не найдено

закрытый ресурс иногда отдают как 404 намеренно — чтобы не подтверждать, что он существует.

404
03

Как проверить

curl -i https://api.example.com/me | head -5

увидеть, приходит ли WWW-Authenticate и какой способ требуется

curl -H "Authorization: Bearer $TOKEN" -i https://api.example.com/me | head -1

проверить конкретный токен, не гадая по интерфейсу

Найти другой код

В справочнике шестьдесят четыре кода с поиском по номеру, названию и смыслу — и разбор частых пар вроде 401 и 403.

Открыть справочник на этом кодеВсе коды

Обновлено

«» добавлен в избранное