← Назад ко всем вопросам

В чем разница между 401 и 403 статус-кодам

1️⃣ Как кратко ответить

401 статус-код означает, что доступ к ресурсу запрещен из-за отсутствия или неверных учетных данных. 403 статус-код указывает, что доступ к ресурсу запрещен, несмотря на наличие корректных учетных данных, из-за недостаточных прав.

2️⃣ Подробное объяснение темы

Статус-коды 401 и 403 являются частью протокола HTTP и используются для обозначения различных проблем с доступом к ресурсам на сервере.

401 Unauthorized

  • Что это значит: Сервер не может предоставить доступ к запрашиваемому ресурсу, потому что клиент не предоставил корректные учетные данные. Это может быть связано с отсутствием заголовка авторизации или с неверными данными в нем.
  • Когда используется: Когда сервер требует аутентификацию, но клиент не предоставил ее или предоставил неверные данные.
  • Пример: Если пользователь пытается получить доступ к защищенной странице без ввода логина и пароля, сервер вернет 401 статус-код.

403 Forbidden

  • Что это значит: Сервер понимает запрос и учетные данные клиента, но отказывается выполнять его из-за недостаточных прав доступа. Это может быть связано с политиками безопасности или ограничениями на уровне сервера.
  • Когда используется: Когда клиент аутентифицирован, но не имеет прав для выполнения запрашиваемого действия.
  • Пример: Пользователь вошел в систему, но пытается получить доступ к административной панели, к которой у него нет прав доступа. Сервер вернет 403 статус-код.

Пример кода:

GET /protected/resource HTTP/1.1
Host: example.com
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
  • GET /protected/resource HTTP/1.1: Запрос на получение защищенного ресурса.
  • Host: example.com: Указывает, к какому серверу направляется запрос.
  • Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l: Заголовок авторизации с базовой аутентификацией. Если данные неверны или отсутствуют, сервер может вернуть 401.

Ответ сервера с 401:

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="Access to the protected site"
  • HTTP/1.1 401 Unauthorized: Сервер сообщает, что аутентификация не удалась.
  • WWW-Authenticate: Basic realm="Access to the protected site": Указывает, что требуется базовая аутентификация и предоставляет информацию о защищенной области.

Ответ сервера с 403:

HTTP/1.1 403 Forbidden
Content-Type: text/html
Content-Length: 123
  • HTTP/1.1 403 Forbidden: Сервер сообщает, что доступ запрещен, несмотря на наличие аутентификации.
  • Content-Type: text/html: Указывает, что тело ответа содержит HTML.
  • Content-Length: 123: Указывает длину тела ответа.

Понимание различий между этими статус-кодами важно для правильной настройки безопасности и управления доступом в веб-приложениях.

Тема: HTTP, REST, SOAP, WebSocket и API
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки