Когда происходит HTTP-аутентификация?Является ли один из них с помощью http://peter:mypassword@www.somesite.com? - PullRequest
0 голосов
/ 25 февраля 2011

Кажется, что есть 2 HTTP-аутентификации: Обычная аутентификация доступа и Дайджест-аутентификация доступа

Так что, в общем, я думаю, что пользователь пытается получить доступ к URL,и веб-сервер возвращает 401 Unauthorized, а затем браузер открывает окно приложения, запрашивая имя пользователя и пароль, а затем устанавливает учетные данные в заголовках HTTP, а затем снова отправляет HTTP-запрос.

Что насчет http://peter:mypassword@www.somesite.com?Предполагается ли, что он не будет ждать возвращения 401, а заранее сообщит имя пользователя и пароль?Каким-то образом я пытался http://peter:mypassword@www.google.com или Yahoo, но внутри Fiddler (для мониторинга сетевого трафика) я не вижу никакой информации о полномочиях в HTTP-запросе?

Ответы [ 2 ]

2 голосов
/ 25 февраля 2011

Вам все еще нужно отправить 401 на стороне сервера. Пользователь: pass @ host - это просто удобство, чтобы не отображать диалог входа в систему.

Если подумать, это имеет смысл, потому что если вы не отправите 401 с заголовком, объясняющим, какой метод использовать, клиент не знает, как отформатировать учетные данные.

(На самом деле существует множество схем, не только Basic и Digest.)

0 голосов
/ 25 февраля 2011

Для некоторого понимания этого существует Railscast, который говорит о базовой аутентификации HTTP и добавлении ее в проект Rails и о том, как это выглядит в браузере: http://railscasts.com/episodes/82-http-basic-authentication

...