curl与wget在身份验证方面有何不同

curl与wget在身份验证方面有何不同,curl,wget,Curl,Wget,curl对wget有什么不同?我正在尝试通过url使用访问安全网页 https://username:password@website.com 然而,这似乎并没有让我直接进入页面。如果我用wget尝试相同的url wget https://username:password@website.com 我收到一个错误403:禁止。如果我对curl使用相同的命令 curl https://username:password@website.com 请求成功。这两个命令有什么不同之处?我想做cur

curl对wget有什么不同?我正在尝试通过url使用访问安全网页

https://username:password@website.com
然而,这似乎并没有让我直接进入页面。如果我用wget尝试相同的url

wget https://username:password@website.com
我收到一个
错误403:禁止
。如果我对curl使用相同的命令

curl https://username:password@website.com

请求成功。这两个命令有什么不同之处?我想做curl所做的任何事情,但是从浏览器url。

通过启用
-d
调试,您可以看到
wget
正在发送哪些标题

wget -d https://username:password@website.com
您感兴趣的是
--请求开始--
--请求结束--
之间的位。这里有一个例子

对于
curl
,使用详细标志
-v
。您还需要将STDOUT上的内容发送到/dev/null

curl -v https://username:password@website.com > /dev/null.
您对开头带有
的行感兴趣,这些行表示它们是由
curl
发送的。再说一次,这是

curl
还将为您提供有关SSL协商的信息



一种可能性是,该网站已决定通过其用户代理安装机器人程序。他们可能阻止了
wget
,但忘记了
curl
。尝试设置wget--user agent=curl/7.44.0https://username:password@www.website.com
,看看这是否能让你加入。

cURL默认为,我不知道wget。您是否可以在wget中设置任何详细标志来查看所有标题?使用cURL,您可以使用
-v
。如果你在wget中发现了这个问题,那么你也可以这样做并比较请求。是的,我在curl上尝试了verbose命令(我刚刚尝试了wget--verbose,它几乎执行了我上面给出的请求)。它没有显式地向我显示url请求。有没有一种方法可以通过url绕过基本的身份验证?如果你只使用url,浏览器中是否会弹出登录对话框?是的,有,但我想绕过它。我正在尝试使用现有的插件在代码repo上设置一个webhook。这个插件没有认证细节的选项,所以我试图通过url破解它。除了写我自己的插件还有什么建议吗?好的。谢谢所以看起来curl有一个额外的
授权:基本的d2F0NDIxOkF9ZXJ6MjAxNQ==
步骤。是否有一种仅使用url的请求来实现此目的的方法?另外,您的鬼鬼祟祟的
--user-agent
标志不起作用。@这意味着服务器没有正确发送HTTP验证质询
curl
正在使用基本HTTP身份验证以明文形式发送您的用户名和密码。为了避免泄露您的密码,
wget
仅在被要求时使用基本身份验证,即使您指定了用户名和密码。尝试
wget--auth no challenge
。请注意,这是非常不安全的,并且会泄露您的密码。服务器至少应该在使用。这看起来确实有效。我应该提到,我的最终目标是在浏览器url中执行此操作,因此我希望尽可能避免使用wget命令解决问题:-)@inJeans您的浏览器可能也拒绝使用基本HTTP身份验证。所以我想我必须处理它?
curl -v https://username:password@website.com > /dev/null.
> GET / HTTP/1.1
> Host: www.google.com
> User-Agent: curl/7.44.0
> Accept: */*
>