bash - curl 的 --user 和 --data 选项有什么区别?
问题描述
因此,开始时,我试图制作一个 bash 脚本来每隔 n 天登录一个网站,以绕过一个奇怪的地理封锁。
但是当我开始四处搜索并研究如何使用 curl 登录网站时,我看到了两种方法。
curl -u "foo:fooPassword" example.com
或者
curl -d "username=foo&password=fooPassword" example.com
好吧,在我的用例中,只有后者有效,但我想知道这两个选项之间有什么区别。
他们的首选用例是什么?
他们都为不同类型的身份验证做不同的事情吗?
-d 是否可以使用其他选项替换--user?或相反亦然?
在我看来,这两件事很容易在我的大脑中混合,所以我想看看这两件事之间的区别
解决方案
该--user
选项设置HTTPAuthorization
标头,用于 HTTP 基本身份验证。
该--data
选项设置将在 HTTPPOST
请求正文中提交的数据。许多 Web 应用程序使用这种方法实现自己的身份验证机制,而不是依赖于 HTTP 基本身份验证,因为这允许它们对过程进行更高程度的控制(例如,基于时间的凭据到期、注销的能力等)。该--data
选项可用于向远程服务器发送任意数据;它不仅限于发送用户名和密码。
这两种机制中的哪一种是必需的,完全取决于您正在与之交互的特定 Web 服务。
推荐阅读
- python - 从子目录导入模块会导致它在其目录中找不到其他模块
- python - 熊猫从上面的行复制值
- python - 如何在 discord.py 中将多个单词设置为单个命令?
- sql - 使用 A 列对记录进行计数和分组,并使用 where 子句对 B 列进行计数
- javascript - 获取深层嵌套对象结构中的父、祖父和键
- tree - 图和树遍历运行时
- java - 加入后在 CompletableFuture 中返回一个列表
- powerbi-desktop - 自定义格式未显示在可视化器上?
- mongodb - 如何将 connect-mongo 版本 4x 与 express-session 一起使用。我收到错误
- java - Google AdMob 测试广告不显示