如果没有来自服务器的第一个401响应,则无法进行摘要式身份验证。
即:服务器回复第一个请求:
WWW-Authenticate: Digest realm="Protected", qop="auth", nonce="MTM0Njg2MjYwMjY0ODozNDk5ZDkxNTYxNjMxMDJmNDA4MWQ1NTBmZjk5OGQ5Nw=="
客户端在收集有效的摘要式身份验证请求之前需要此信息。摘要需要使用nonce和op方法才能提供有效的
response="58faded9ae5f639ba0056fb86edca71f"
如第二个请求中所示。
因此,简而言之,如果没有第一次获取401,就无法进行摘要请求,因为没有足够的信息来组装响应。
从 男人卷曲 :
--anyauth (HTTP)告诉curl自己弄清楚身份验证方法,并且 使用远程站点声称支持的最安全的一个。这是 通过首先执行请求并检查响应标头来完成 可能导致额外的网络往返。这用来代替 设置一个特定的身份验证方法,您可以使用它 --basic, - digest,--ntlm和--negotiate。 请注意,如果您上传,则不建议使用--anyauth stdin,因为它可能需要两次发送数据然后再发送客户端 必须能够倒带。如果从上传时需要出现 stdin,上传操作将失败。
--anyauth
(HTTP)告诉curl自己弄清楚身份验证方法,并且 使用远程站点声称支持的最安全的一个。这是 通过首先执行请求并检查响应标头来完成 可能导致额外的网络往返。这用来代替 设置一个特定的身份验证方法,您可以使用它 --basic, - digest,--ntlm和--negotiate。
请注意,如果您上传,则不建议使用--anyauth stdin,因为它可能需要两次发送数据然后再发送客户端 必须能够倒带。如果从上传时需要出现 stdin,上传操作将失败。
你应该使用--digest而不是--anya。