Как работает аутентификация http://user:pass@host.com?

Кто-нибудь может объяснить, как работает аутентификация http://user:pass@host.com/? Браузер отправляет Authorization заголовок с user:pass кодируется base-64?

Я открыл консоль Net в инструментах разработчика Chrome, и когда я делаю запрос, такой как http://user:pass@stackru.com я не вижу Authorization заголовок добавляется.

Мне очень интересно, как браузер отправляет пароль в случае, если я использую user:pass@ перед URL.

1 ответ

Решение

Чтобы проверить заголовки, вы должны проверить на сервере, который требует аутентификации. Клиент не отправит Authorization заголовок до тех пор, пока сервер не запросит его, так как клиент не будет знать, какой метод аутентификации требует сервер (базовый или дайджест).


HTTP-аутентификация выполняется в двух запросах:

Во-первых, запрос без каких-либо Authorization Заголовок отправлен. Затем сервер отвечает WWW-Authenticate это говорит клиенту, как пройти аутентификацию. Это включает в себя имя области и метод аутентификации (опять же, это простой или дайджест)

Затем клиент отправляет новый запрос с дополнительным Authorization заголовок. В случае базовой аутентификации этот заголовок просто user:pass закодировано в base64, как вы говорите:

Authorization: Basic dXNlcjpwYXNz

Теперь пароль виден в пути, если вы не используете https. Лучшим вариантом является дайджест-аутентификация, где содержимое обоих WWW-Authenticate а также Authorization лучше всего объяснить в статье в Википедии.:)

Другие вопросы по тегам