curl 和 wget 有什么区别?

curl 和 wget 有什么区别?

这两种方式都curl可以wget用于下载文件等。在选择其中一种方式时,需要考虑哪些显著的差异?

答案1

定义了“正确使用”后,使用wget

为什么?原因如下:

递归!与 curl 相比,wget 的主要优势在于它能够递归下载,甚至可以下载从远程资源引用的所有内容,无论是 HTML 页面还是 FTP 目录列表。


无耻抄袭这里

curl

  • 图书馆.curl由一个跨平台库提供支持,该库libcurl具有稳定的 API,可供每个人使用。这种差异非常重要,因为它对内部处理方式产生了完全不同的态度。制作一个库也比制作一个“单纯的”命令行工具稍微困难一些。

  • 管道.curl的工作方式更像传统的 Unix命令,它以“一切皆管道”的方式cat向 发送更多内容stdout,并从中读取更多内容。更像是,使用相同的模拟。stdinwgetcp

  • 单发.curl基本上是为单次数据传输而设计的。它只传输用户指定的 URL,不包含任何递归下载逻辑或任何类型的 HTML 解析器。

  • 更多协议.curl支持 FTP、FTPS、Gopher、HTTP、HTTPS、SCP、SFTP、TFTP、TELNET、DICT、LDAP、LDAPS、FILE、POP3、IMAP、SMB/CIFS、SMTP、RTMP 和 RTSP。Wget 仅支持 HTTP、HTTPS 和 FTP。

  • 更便携.curl可以在比 更多的平台上构建和运行wget。例如:OS/400、TPF 和其他更“奇特”的平台,这些平台并不是直接的 Unix 克隆。

  • 更多 SSL 库和 SSL 支持.curl可以使用十一个 (11!) 个不同的 SSL/TLS 库中的一个来构建,它为协议细节提供了更多的控制和更广泛的支持。curl支持公钥固定。

  • HTTP 认证.curl支持更多 HTTP 身份验证方法,尤其是通过 HTTP 代理:Basic、Digest、NTLM 和 Negotiate

  • 袜子.curl支持多个 SOCKS 协议版本用于代理访问

  • 双向.curl提供上传和发送功能。wget仅提供普通的 HTTP POST 支持。

  • HTTP 多部分/表单数据发送,它允许用户进行 HTTP “上传”,并模拟浏览器,并在更大范围内进行 HTTP 自动化

  • curl支持gzip并扩大内容编码并自动解压缩

  • curl提供并执行传输编码 HTTP 的解压缩,wget 不提供

  • curl支持 HTTP/2,并使用 Happy Eyeballs 进行双栈连接

  • 开发者活动更加活跃。虽然这一点还有待商榷,但我在这里考虑了三个指标:邮件列表活动、源代码提交频率和发布频率。任何关注这两个项目的人都可以看到,curl 项目在所有这些领域的发展速度都快得多,而且这种情况已经持续了 10 多年。在 openhub 上进行比较


wget

  • wget仅限命令行。没有库。

  • 递归!wget与 curl 相比,其主要优势在于其能够递归下载,甚至只是下载从远程资源引用的所有内容,无论是 HTML 页面还是 FTP 目录列表。

  • 较旧.wget可以追溯到 1995 年,但curl最早可追溯到 1996 年底。

  • 通用公共许可证.wget是 100% GPL v3。curl 是 MIT 许可的。

  • GNU.wget是 GNU 项目的一部分,所有版权均归 FSF 所有。curl 项目完全独立,没有任何组织管辖,几乎所有版权均归 Daniel 所有。

  • wget不需要额外的选项就可以简单地将远程 URL 下载到本地文件,而curl需要-o-O

  • wget支持使用公共后缀列表处理 cookie 域,而 curl 不支持。

  • wget仅支持 GnuTLS 或 OpenSSL 以实现 SSL/TLS 支持

  • wget仅支持基本身份验证作为 HTTP 代理上的唯一身份验证类型

  • wget不支持 SOCKS

  • 它具有从过早中断的传输中恢复并继续下载的能力,这是 curl 所无法比拟的。

  • wget仅使用左手在 qwerty 键盘上即可输入!

答案2

有许多可以下载的工具,例如curl,,,,,,,,等snarf。请根据您的wget需求以及想要使用的功能来使用它。pavuk检查fgetfetchlftparia2HTTrack特征表 并相应使用。

卷曲:

  • Curl 支持更多协议 FTP、FTPS、HTTP、HTTPS、SCP、SFTP、TFTP、TELNET、DICT、LDAP、LDAPS、FILE、POP3、IMAP、SMTP、RTMP 和 RTSP
  • Curl 支持更多 SSL 库
  • Curl 支持更多 HTTP 身份验证方法,尤其是通过 HTTP 代理:Basic、Digest、NTLM 和 Negotiate
  • Curl 由 libcurl 提供支持 - 一个跨平台库,具有稳定的 API,可供所有人使用

使用 wget 命令:

  • 虽然 wget 支持 HTTP、HTTPS 和 FTP
  • Wget 仅支持 GnuTLS 或 OpenSSL 以实现 SSL/TLS 支持
  • Wget 仅支持基本身份验证作为 HTTP 代理上的唯一身份验证类型
  • Wget 只是一个命令行工具,它没有库。

更多信息的重要资源:

答案3

它们有很多共同的功能,但curl选项更多。对于wget偶尔翻阅来说可能就足够了man wget,但curl我需要研究此网页在浏览器中。我相信您的浏览器能做到的一切,curl您也能做到。

答案4

我认为 wget 和 curl 之间还有另一个显著的区别。

Wget 是一个独立的命令行实用程序,主要用于快速、简单地检索互联网内容。

另一方面,Curl 基本上是功能强大的 libcurl 库的终端前端。Libcurl 提供了一套非常强大的工具来处理所有形式和风格的 URL,并且适用于几乎所有语言和平台。Curl 基本上让您能够在 shell 脚本中使用此库。

相关内容