ИМХО, весь смысл использования HTTP-аутентификации заключается в возможности делегировать задачи аутентификации:
- Веб-сервер защищает от несанкционированного доступа к защищенным ресурсам
- Браузер запрашивает имя пользователя и пароль при необходимости
Итак, у вас есть работающая система с минимальными усилиями.
Теперь, если вы используете HTML-форму для запроса учетных данных, сервер узнает, кто вы, а браузер - нет: он запросит учетные данные, как только найдет заголовок ответа WWW-Authenticate
и 401
код состояния. Чтобы это работало, браузер должен отправлять Authorization
заголовок запроса на каждый HTTP-запрос; однако ваша форма не может указать браузеру отправлять соответствующий заголовок HTTP.
Конечно, вы можете написать свой собственный код аутентификации на стороне сервера в PHP, настроить сервер для анализа статических файлов через него и пропустить 401
и WWW-Authenticate
, как только вы получите действительные учетные данные (которые затем должны быть хранится где-то еще, например, сеанс PHP). Но затем вы утратили все преимущества HTTP-аутентификации: на этом этапе пользовательский обработчик входа в систему с сеансами PHP станет гораздо более простым решением.
Подводя итог:
- Если вам нужна простота, забудьте о формах HTML
- Если вам нужны HTML-формы, напишите свой собственный код