curl 的 --user 和 --data 选项有什么区别?
What's the difference between curl's --user and --data option?
因此,首先,我试图制作一个 bash 脚本,每隔 n 天登录一次网站,以绕过奇怪的地理封锁。
但是当我开始谷歌搜索并研究如何使用 curl 登录网站时,我看到了两种方法。
curl -u "foo:fooPassword" example.com
或
curl -d "username=foo&password=fooPassword" example.com
好吧,在我的用例中,只有后者有效,但我想知道这两个选项之间有什么区别。
他们的首选用例是什么?
他们都对不同类型的身份验证做不同的事情吗?
-d,也许还有一些其他选项,可以替换 --user 吗?反之亦然?
在我看来,这两个东西很容易在我的大脑中混合,所以我想看看这两个东西之间的区别
--user
选项设置 HTTP Authorization
header,用于 HTTP 基本身份验证。
--data
选项设置将在 HTTP POST
请求正文中提交的数据。许多 Web 应用程序使用此方法而不是依赖 HTTP 基本身份验证来实现自己的身份验证机制,因为这允许它们对过程进行更高程度的控制(例如,基于时间的凭据过期、注销能力等)。 --data
选项可用于向远程服务器发送任意数据;它不仅限于发送用户名和密码。
需要这两种机制中的哪一种完全取决于您与之交互的特定 Web 服务。
因此,首先,我试图制作一个 bash 脚本,每隔 n 天登录一次网站,以绕过奇怪的地理封锁。
但是当我开始谷歌搜索并研究如何使用 curl 登录网站时,我看到了两种方法。
curl -u "foo:fooPassword" example.com
或
curl -d "username=foo&password=fooPassword" example.com
好吧,在我的用例中,只有后者有效,但我想知道这两个选项之间有什么区别。
他们的首选用例是什么?
他们都对不同类型的身份验证做不同的事情吗?
-d,也许还有一些其他选项,可以替换 --user 吗?反之亦然?
在我看来,这两个东西很容易在我的大脑中混合,所以我想看看这两个东西之间的区别
--user
选项设置 HTTP Authorization
header,用于 HTTP 基本身份验证。
--data
选项设置将在 HTTP POST
请求正文中提交的数据。许多 Web 应用程序使用此方法而不是依赖 HTTP 基本身份验证来实现自己的身份验证机制,因为这允许它们对过程进行更高程度的控制(例如,基于时间的凭据过期、注销能力等)。 --data
选项可用于向远程服务器发送任意数据;它不仅限于发送用户名和密码。
需要这两种机制中的哪一种完全取决于您与之交互的特定 Web 服务。