Как работает аутентификация 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
лучше всего объяснить в статье в Википедии.:)