Когда происходит HTTP-аутентификация? Является ли один из них с использованием http://peter:mypassword@www.somesite.com?
Кажется, что есть 2 HTTP-аутентификации: базовая аутентификация доступа и дайджест-аутентификация доступа
В общем, я думаю, что пользователь пытается получить доступ к URL, и веб-сервер возвращает 401 Unauthorized, и затем браузер открывает окно приложения, запрашивая имя пользователя и пароль, а затем устанавливает учетные данные в заголовках HTTP, а затем отправляет HTTP запрос снова.
А как насчет http://peter:mypassword@www.somesite.com/? Предполагается ли, что он не будет ждать возвращения 401, а заранее сообщит имя пользователя и пароль? Каким-то образом я попробовал http://peter:mypassword@www.google.com/ или yahoo, но внутри Fiddler (для мониторинга сетевого трафика) я не вижу никакой информации о полномочиях в HTTP-запросе?
2 ответа
Вам все еще нужно отправить 401 на стороне сервера. Пользователь:pass@host - это просто удобство, чтобы не отображать диалог входа в систему.
Если подумать, это имеет смысл, потому что если вы не отправите 401 с заголовком, объясняющим, какой метод использовать, клиент не знает, как отформатировать учетные данные.
(На самом деле существует множество схем, не только Basic и Digest.)
Для некоторого понимания этого существует Railscast, в котором говорится о HTTP Basic Authentication и добавлении его в проект Rails и о том, как он выглядит в браузере: http://railscasts.com/episodes/82-http-basic-authentication