这两种方式都curl
可以wget
用于下载文件等。在选择其中一种方式时,需要考虑哪些显著的差异?
答案1
定义了“正确使用”后,使用wget
。
为什么?原因如下:
递归!与 curl 相比,wget 的主要优势在于它能够递归下载,甚至可以下载从远程资源引用的所有内容,无论是 HTML 页面还是 FTP 目录列表。
无耻抄袭这里
curl
图书馆.
curl
由一个跨平台库提供支持,该库libcurl
具有稳定的 API,可供每个人使用。这种差异非常重要,因为它对内部处理方式产生了完全不同的态度。制作一个库也比制作一个“单纯的”命令行工具稍微困难一些。管道.
curl
的工作方式更像传统的 Unix命令,它以“一切皆管道”的方式cat
向 发送更多内容stdout
,并从中读取更多内容。更像是,使用相同的模拟。stdin
wget
cp
单发.
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
检查fget
fetch
lftp
aria2
HTTrack
特征表 并相应使用。
卷曲:
- 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 只是一个命令行工具,它没有库。
更多信息的重要资源:
这是很好的解释curl 与 Wget。
curl 支持的功能详情:特点--curl 能做什么
wget 支持的功能详情:wget 功能
答案3
它们有很多共同的功能,但curl
选项更多。对于wget
偶尔翻阅来说可能就足够了man wget
,但curl
我需要研究此网页在浏览器中。我相信您的浏览器能做到的一切,curl
您也能做到。
答案4
我认为 wget 和 curl 之间还有另一个显著的区别。
Wget 是一个独立的命令行实用程序,主要用于快速、简单地检索互联网内容。
另一方面,Curl 基本上是功能强大的 libcurl 库的终端前端。Libcurl 提供了一套非常强大的工具来处理所有形式和风格的 URL,并且适用于几乎所有语言和平台。Curl 基本上让您能够在 shell 脚本中使用此库。