Протокол HTTP
Теория: Базовая аутентификация
Аутентификация в HTTP представляет собой процесс проверки подлинности пользователя или клиента. Это важная часть системы безопасности, которая позволяет серверу убедиться, что доступ к его ресурсам получает именно тот, кто имеет на это право. В HTTP существует несколько типов аутентификации, среди которых самой простой является базовая аутентификация.
Базовая аутентификация
Базовая аутентификация, выглядит как окошко браузера запрашивающее логин и пароль при входе на сайт или какой-то из его разделов. Возможно вы даже сталкивались с таким запросом в интернете (пример).
Базовая аутентификация настраивается на серверной стороне, либо внутри приложения (сайта), либо внутри веб-сервера, например Nginx. Для этого указывается конкретная пара логин/пароль для определенного пути в браузере. Пример с Nginx ниже:
Когда пользователь переходит на страницу, на которой настроена базовая аутентификация, серверная часть проверяет наличие логина и пароля в запросе. Передать их можно таким образом:
Если логин и пароль были переданы и они совпали с теми, что указаны на сервере, то запрос пройдет. Если они не совпали или не были переданы, то сервер возвращает код ответа: HTTP 401 Unauthorized. Ответ может сопровождаться заголовком WWW-Authenticate, указывающему клиенту на запрос логина и пароля. Именно поэтому браузер показывает окошко для ввода данных.
Логин и пароль, указанные в модальном окне, передаются на сервер в виде заголовка с закодированным сообщением:
Когда логин и пароль введены, нас не просто пускает в закрытую зону, но и все дальнейшие запросы будут проходить, хотя мы больше ничего не вводим. После того как пользователь успешно аутентифицирован, браузер или клиент API автоматически включает заголовок Authorization с теми же учетными данными во все последующие запросы к тому же серверу (до тех пор, пока сессия не завершится или ресурс не изменится). Это значит, что сервер продолжает проверять логин и пароль на каждом запросе, но клиент всегда предоставляет их автоматически, поэтому пользователь не замечает повторных запросов аутентификации.
.png)














