Вопрос

Мне любопытно узнать, какое влияние на производительность использования HTTP Basic Auth на веб -сервере, таком как Apache, LightPD или NGINX. Я полагаю, что узкое место - это фактическое чтение файла сервером для аутентификации пользователя. Мне также кажется, что стоимость чтения файла для аутентификации пользователя пропорциональна количеству пользователей в этом файле.

У меня есть вопросы:
1. Есть ли определенное количество пользователей, при которых базовая Auth через файл начинает резко падать или линейно относительно количества пользователей в файле?
2. Учитывая характер HTTP без сохранения состояния, если пользователь был аутентифицирован с использованием HTTP Basic Auth Webserver по одному запросу:
- Пытает ли это просто учетные данные по каждому запросу, и WebServer должен просматривать файл пароля каждый раз, чтобы определить, является ли это запрос от действующего пользователя?
или же
- Получите что -то вроде токена, которое он использует в заголовке HTTP по последующим запросам, что позволяет серверу снова избежать анализа файла пароля?

заранее спасибо

Это было полезно?

Решение

  1. Линейно относительный. Я бы не стал волноваться. HTTP Basic Auth оказывается масштабируемой. Просто возьмите API Twitter в качестве примера. Он использует базовую аудиторию.

  2. «Поскольку протокол HTTP является без сохранения состояния, каждый запрос будет рассматриваться таким же образом, даже если они от одного и того же клиента. То есть каждый ресурс, который запрашивается на сервере, должен снова предоставить учетные данные аутентификации, чтобы получить Ресурс. К счастью, браузер позаботился о деталях, так что вам нужно вводить свое имя пользователя и пароль только один раз на сеанс браузера, то есть вам, возможно, придется ввести его снова в следующий раз, когда вы открываете свой Браузер и посетите тот же веб -сайт ».

Подробная информация в Apache Auth Документация.

Другие советы

Мой опыт только в Apache 2.x.

  1. Да. Это будет линейно с поставщиком аутентификации по умолчанию (файл). Оно использует ap_cfg_getline() Таким образом, он будет линейным для количества строк (пользователей).
  2. Да. MOD_AAA должен просматривать пароль каждый раз. Вы можете использовать что -то вроде Мемкуки Для аутентификации на основе cookie или токенов.

Расположение файла один раз в входе в систему должно масштабироваться довольно хорошо, независимо от того, сколько их пользователей. Я действительно не буду беспокоиться об этом. В будущем вы можете разработать подход, управляемый базой данных с надлежащей индексацией. Я подозреваю во всех узких местах, которые вы столкнетесь с разработкой сайта, Basic Auth не будет одним из них в течение очень очень долгого времени - если ваш веб -сервер не будет значительно недостаточно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top