我目前正在尝试了解使用HTTP Basic Auth进行HTTP API草图的一些技术含义。
我注意到,C# HTTP Web Request和wget
默认情况下都会首先发送不带凭据的请求,从而生成401
从服务器,然后发送基本身份验证信息。 (感谢SO自动建议,it seems browsers do it the same way。)
你可以让wget始终通过--auth-no-challenge
发送,但它不是默认值。
HttpWebRequest object will always request a 401 first, unless you manually assemble the authentication header。 (即使使用PreAuthentication
选项。)
是否有特定原因(在HTTP规范中)?这些以开发人员为中心的工具"似乎很奇怪。当我已经指定我想要基本的auth + user + passwd时,我会做身份验证dacne吗?
从(希望)相关的RFC2617添加引用:( emph.mine)
希望使用来源验证自身身份的用户代理 服务器 - 通常,但不一定,在收到401 后 (未经授权) - 可以通过包含授权标题字段来实现 请求。