卷曲和 wget 有什么区别?

卷曲和 wget 有什么区别?

我很想知道curl和之间的区别wget。两者都用于获取文件和文档,但它们之间的主要区别是什么。

为什么有两个不同的程序?

答案1

主要区别是:

  • wget相比之下,它的主要优势curl是它的递归下载能力。
  • wget仅是命令行。没有库或任何东西,但curl它的功能由 libcurl 提供支持。
  • curl支持FTP、、、、、、、、、、、、、、、、、、、、、和。FTPS​​​​​​​​​​​​​​​支持,和.GOPHERHTTPHTTPSSCPSFTPTFTPTELNETDICTLDAPLDAPSFILEPOP3IMAPSMTPRTMPRTSPwgetHTTPHTTPSFTP
  • curl可以在比 . 更多的平台上构建和运行wget
  • wget是根据自由软件 Copyleft 许可证(GNU GPL)发布的。curl是根据自由软件许可许可证(MIT 衍生版本)发布的。
  • curl提供上传和发送功能。wget仅提供纯 HTTP POST 支持。

您可以通过以下链接查看更多详细信息:

卷曲与 Wget

答案2

它们是为了不同的目的而制造的

  • wget是一个从服务器下载文件的工具
  • curl是一个让您与服务器交换请求/响应的工具

获取

Wget 仅允许您从HTTP/HTTPSFTP服务器下载文件。您给它一个链接,它会自动下载链接指向的文件。它自动构建请求。

卷曲

与 wget 相比,Curl 可以让您根据您的意愿构建请求。将其与支持的大量协议相结合 - FTPFTPSGopherHTTPHTTPSSCPSFTP、、、、、、、和- 您将获得一个令人惊叹的调试工具(用于测试协议、TFTP测试服务器配置等)。TelnetDICTLDAPLDAPSIMAPPOP3SMTPRTSPURI

正如许多人已经提到的,您可以使用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

相关内容