Что означают коды 401 и 403?

Ошибка 401 Unauthorized указывает на то, что клиентский запрос не был авторизован.

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

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

Ошибка 401 Unauthorized указывает на то, что клиентский запрос не был авторизован. Это означает, что у клиента нет необходимых учетных данных (например, логина и пароля, токена доступа) для получения доступа к запрошенному ресурсу.

Подробный разбор

Ответ с пояснениями

Ошибка 401 Unauthorized указывает на то, что клиентский запрос не был авторизован. Это означает, что у клиента нет необходимых учетных данных (например, логина и пароля, токена доступа) для получения доступа к запрошенному ресурсу.

Основные проблемы, связанные с ошибкой 401:

  1. Неправильные или отсутствующие учетные данные:

    • Пользователь ввел неверный логин/пароль.
    • Запрос отправлен без необходимых учетных данных (например, без заголовка Authorization).
    • Токен доступа истек или некорректен.
  2. Ошибка на стороне сервера:

    • Сервер неправильно настроен для обработки аутентификации.
    • Проблема с сервисом аутентификации (например, недоступен или работает некорректно).
    • Ошибка при проверке подписи токена.
  3. Проблемы с инфраструктурой:

    • Прокси-сервер или файрвол блокируют передачу аутентификационных данных.
    • Проблемы с DNS или сетью, мешающие корректному взаимодействию с сервисом аутентификации.
  4. Неправильная логика на стороне клиента:

    • Приложение клиента не отправляет или отправляет с ошибками данные для аутентификации.
    • Некорректная обработка ответа 401 (например, не происходит перенаправление на страницу входа).

Для диагностики и устранения проблемы QA инженер должен:

  • Проверить логи сервера и клиента.
  • Использовать инструменты разработчика браузера (Network tab) для анализа запроса и ответа (особенно заголовков Authorization и WWW-Authenticate).
  • Проверить корректность учетных данных.
  • Изучить документацию API на предмет требований к аутентификации.
  • Проверить работу сервиса аутентификации, если он отдельный.

Пример заголовка Authorization в запросе:

// GET /api/v1/resource HTTP/1.1
// Host: example.com
// Authorization: Bearer your_access_token
// User-Agent: Your-Client/1.0
// Accept: application/json

Пример заголовка WWW-Authenticate в ответе 401:

// HTTP/1.1 401 Unauthorized
// Content-Type: text/plain
// WWW-Authenticate: Bearer realm="Access to the protected area"
// Content-Length: 21
// Connection: keep-alive
//
// Unauthorized access.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее