我很想知道curl
和之间的区别wget
。两者都用于获取文件和文档,但它们之间的主要区别是什么。
为什么有两个不同的程序?
答案1
主要区别是:
wget
相比之下,它的主要优势curl
是它的递归下载能力。wget
仅是命令行。没有库或任何东西,但curl
它的功能由 libcurl 提供支持。curl
支持FTP
、、、、、、、、、、、、、、、、、、、、、和。FTPS
支持,和.GOPHER
HTTP
HTTPS
SCP
SFTP
TFTP
TELNET
DICT
LDAP
LDAPS
FILE
POP3
IMAP
SMTP
RTMP
RTSP
wget
HTTP
HTTPS
FTP
curl
可以在比 . 更多的平台上构建和运行wget
。wget
是根据自由软件 Copyleft 许可证(GNU GPL)发布的。curl
是根据自由软件许可许可证(MIT 衍生版本)发布的。curl
提供上传和发送功能。wget
仅提供纯 HTTP POST 支持。
您可以通过以下链接查看更多详细信息:
答案2
它们是为了不同的目的而制造的
wget
是一个从服务器下载文件的工具curl
是一个让您与服务器交换请求/响应的工具
获取
Wget 仅允许您从HTTP
/HTTPS
或FTP
服务器下载文件。您给它一个链接,它会自动下载链接指向的文件。它自动构建请求。
卷曲
与 wget 相比,Curl 可以让您根据您的意愿构建请求。将其与支持的大量协议相结合 - FTP
、FTPS
、Gopher
、HTTP
、HTTPS
、SCP
、SFTP
、、、、、、、和- 您将获得一个令人惊叹的调试工具(用于测试协议、TFTP
测试服务器配置等)。Telnet
DICT
LDAP
LDAPS
IMAP
POP3
SMTP
RTSP
URI
正如许多人已经提到的,您可以使用curl 下载文件。确实如此,但这只是一个“额外”。实际上,当您想通过 wget 不支持的协议下载文件时,请使用 CURL。
答案3
实际上,主要区别在于curl
包含一个库 ( libcurl
),并且该库被其他应用程序广泛使用。 wget
是独立的。
答案4
提到了主要区别(1.curl
主要提醒各种协议的通信,wget
主要提醒下载,2.curl
提供并基于libcurl
库,其他软件也可以使用相同的库,是独立的)wget
在其他答案中,但这里还有另一个值得强调的差异,在示例中进行了解释。
curl
另一个不可能的有趣功能wget
是与 UNIX 套接字通信(即即使没有网络也能进行通信)。例如我们可以用来curl
交谈Docker引擎使用其套接字来/var/run/docker.sock
获取 JSON 格式的所有已拉取的 docker 镜像的列表(对于“编程”很有用,与有docker images
利于“可读性”的 CLI 命令相反):
curl --unix-socket /var/run/docker.sock http://localhost/images/json | jq