0

好像有2个HTTP Authentication:Basic access authenticationDigest access authentication

所以我认为一般来说,用户尝试访问一个 URL,Web 服务器返回 401 Unauthorized,然后浏览器弹出一个应用程序窗口,要求输入用户名和密码,然后在 HTTP 标头中设置凭据,然后发送再次 HTTP 请求。

那么http://peter:mypassword@www.somesite.com呢?那是不是应该不等待401回来而是提前提供用户名和密码?不知何故,我尝试了 http://peter:mypassword@www.google.com或 yahoo 但在 Fiddler 内部(监控网络流量),我在 HTTP 请求中看不到任何凭据信息?

4

2 回答 2

2

您仍然需要在服务器端发送 401。user:pass@host 只是为了避免显示登录对话框。

如果您考虑一下,这是有道理的,因为如果您不发送带有标头的 401 来解释要使用的方法,则客户端不知道如何格式化凭据。

(实际上有任意数量的方案,而不仅仅是 Basic 和 Digest。)

于 2011-02-25T00:35:19.033 回答
0

对于它的一些理解,有一个 Railscast 讨论 HTTP 基本身份验证并将其添加到 Rails 项目以及它在浏览器上的样子:http ://railscasts.com/episodes/82-http-basic-authentication

于 2011-02-25T10:16:03.800 回答