![curl 包手册中使用的术语](https://linux22.com/image/153092/curl%20%E5%8C%85%E6%89%8B%E5%86%8C%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%9A%84%E6%9C%AF%E8%AF%AD.png)
卷曲包手册的摘录如下:
如果您从标准输入进行上传,则不建议使用
--anyauth
,因为它可能需要发送数据两次并且客户端必须能够倒回
所以我的两个问题是为什么具体来说,数据是否需要发送两次,因为这本身似乎没有意义,当它指的是客户端能够“倒回”时,这意味着什么?
答案1
的描述--anyauth
说
告诉curl自己找出身份验证方法,并使用远程站点声称支持的最安全的方法。这是通过首先发出请求并检查响应标头来完成的,因此可能会导致额外的网络往返。
它的工作原理是发送不进行身份验证的请求,然后根据响应确定 (a) 是否需要另一个请求以及 (b) 应使用哪种形式的身份验证。典型的场景是服务器响应请求401,标题中的信息表明它将接受哪些类型的身份验证。
为了能够发送请求两次,curl
需要能够重新读取数据(它不会记住它)——这就是“倒回”的意思。管道不是可寻找的,因此用于从其标准输入读取数据的管道curl
意味着curl
无法重新读取输入数据,因此--anyauth
无法可靠地使用。