curl的--user和--data选项有什么区别?

时间:2018-12-14 14:54:50

标签: bash curl libcurl

因此,我开始尝试制作一个bash脚本,每隔n天登录一次网站,以绕过奇怪的地理封锁。

但是,当我开始四处搜寻并研究如何使用curl登录网站时,我会看到两种方法。

curl -u "foo:fooPassword" example.com

curl -d "username=foo&password=fooPassword" example.com

在我的用例中,只有后者有效,但是我想知道这两个选项之间有什么区别。
他们首选的用例是什么?
它们对于不同的身份验证是否都做不同的事情?
-d(也许还有其他选项)可以代替--user吗?反之亦然?
在我看来,这两件事很容易在我的大脑中混合在一起,所以我想看看这两件事之间的区别

1 个答案:

答案 0 :(得分:2)

--user选项设置HTTP Authorization header,用于HTTP基本身份验证。

--data选项设置将在HTTP POST请求的正文中提交的数据。许多Web应用程序使用此方法而不是依靠HTTP基本身份验证来实现自己的身份验证机制,因为这可以使它们对流程进行更高程度的控制(例如,基于时间的凭据到期,注销能力等)。 --data选项可用于将任意数据发送到远程服务器。它不仅限于发送用户名和密码。

所需的两种机制完全取决于您要与之交互的特定Web服务。