Что такое Basic-аутентификация и как она работает в HTTP

Ответ

Basic-аутентификация — это стандартный механизм в протоколе HTTP, который позволяет клиенту предоставить имя пользователя и пароль при выполнении запроса.

Как это работает

  1. Клиент объединяет имя пользователя и пароль через двоеточие (username:password).
  2. Полученная строка кодируется в Base64.
  3. Закодированная строка отправляется на сервер в HTTP-заголовке Authorization со схемой Basic.

Пример заголовка: Authorization: Basic dXNlcjpwYXNz Здесь dXNlcjpwYXNz — это строка "user:pass" в кодировке Base64.

Пример на Python с библиотекой requests

Библиотека requests позволяет не формировать заголовок вручную, что является лучшей практикой.

import requests

# requests автоматически создаст заголовок Authorization: Basic ...
response = requests.get(
    'https://api.example.com/protected',
    auth=('user', 'pass')
)

print(response.status_code)

Ключевой недостаток

Основной минус Basic-аутентификации — низкая безопасность. Данные передаются в легко декодируемом виде, так как Base64 — это кодировка, а не шифрование. Поэтому её обязательно нужно использовать только поверх защищенного соединения HTTPS, которое шифрует весь трафик.