curl
和wget
之间的区别。两者都用于获取文件和文档,但是它们之间的主要区别是什么。为什么会有两个不同的程序?
#1 楼
主要区别在于:wget
与curl
相比的主要优势是它具有递归下载功能。wget
仅限于命令行。没有lib或任何东西,但是curl
的功能由libcurl提供支持。curl
支持FTP
,FTPS
,HTTP
,HTTPS
,SCP
,SFTP
,TFTP
,TELNET
,DICT
,q4312079 LDAP
,LDAPS
,FILE
,POP3
和IMAP
。 SMTP
支持RTMP
,RTSP
和wget
。HTTP
可以在比HTTPS
更高的平台上构建和运行。FTP
是根据自由软件copyleft许可证(GNU GPL)发布的。 curl
是根据免费软件许可许可证(MIT衍生产品)发布的。wget
提供上载和发送功能。 wget
仅提供纯HTTP POST支持。 您可以在以下链接中查看更多详细信息:
curl vs Wget
评论
谢谢,这正是我几个小时以来一直想知道的。我用wget在一个网站上做一个递归蜘蛛,似乎停滞在上面有多达数十亿个链接的页面上。现实情况是,它在一个内核上以100%CPU运行。希望有更好的东西可以做我一直在听说的新式多核产品。
–布莱恩·打顶
15年6月7日在10:13
wget所做的事情之一就是http镜像(或“蜘蛛”)功能。 curl非常擅长于它的功能,但是单独使用curl不能用于镜像网站。
–jsbillings
2015年9月26日在12:38
这些短语毫无意义:“并且所有版权均分配给FSF”,“完全独立且独立,根本没有组织为人父母”。很明显,cURL的作者是它的版权所有者。很明显,wget的作者是它的版权拥有者。但是两者都像自由软件一样是免费的。您可以改为说wget受copyleft许可,而cURL受许可许可。
–Valerio Bozz
18年4月11日在11:59
@ValerioBozz:其实没有。 curl和wget都是社区项目。使用curl时,每个人都拥有他们贡献的代码的版权。与其他大多数GNU程序一样,使用Wget时,各个作者将其版权都授予了FSF。也就是说,他们不再拥有该代码。这是为了允许FSF严格执行copyleft并在需要时重新许可代码。
–darnir
18年11月27日在23:20
答案末尾的超链接指向cURL的作者Daniel Sterberg撰写的文章。
–朱洪波
19年2月13日在10:59
#2 楼
它们是为不同目的而制作的wget
是从服务器下载文件的工具curl
是使您交换请求/响应的工具使用服务器wget
Wget只允许您从
HTTP
/ HTTPS
或FTP
服务器下载文件。您给它一个链接,它将自动下载该链接指向的文件。它会自动构建请求。curl
与wget相比,Curl使您可以根据需要构建请求。将其与支持的众多协议结合在一起-
FTP
,FTPS
,Gopher
,HTTP
,HTTPS
,SCP
,SFTP
,TFTP
,Telnet
,DICT
,LDAP
,LDAPS
,IMAP
,POP3
,SMTP
,RTSP
和URI
(用于测试协议,测试服务器配置等)。如前所述,您可以下载带有curl的文件。是的,但这只是“额外”。实际上,如果要通过wget不支持的协议下载文件,请使用CURL。
评论
实际上,wget也遵循重定向,然后保存响应,而不像curl那样。两者都可以实现与默认行为相反的wget -qO-http://google.co.uk/或curl http://google.co.uk/> index.html
–马特
14年8月15日在17:46
@mtm curl http://google.co.uk/> index.html并未使用内置功能。无论如何,主要区别是每种工具的用途。不可否认的是,工具在发展,并且偏离了最初的轨迹很多次。
– Pithikos
14年8月16日在10:24
@mtm curl http://google.co.uk -o index.html将使用curl的内部结构,而不是使用>进行shell输出重定向。
– Petrus回购
15年1月15日在11:35
#3 楼
实际上,主要区别在于curl
包含一个库(libcurl
),并且该库被其他应用程序广泛使用。 wget
是独立的。#4 楼
我对wget和curl进行了一些性能测试,结果是:下载1MB文件时,平均运行时间是测试的100倍:wget: 0.844s
cURL: 0.680s
下载5MB文件时测试的平均运行时间> 100倍:
wget: 1.075s
cURL: 0.863s
下载10MB文件时测试的平均运行时间100倍: br />
系统上的命令大小:
wget: 1.182s
cURL: 1.074s
评论
处理小文件时,基准会颠倒。我必须用wget代替curl来加速后端脚本,该脚本经常轮询对Web API的调用,但对每个脚本的响应都很少。我猜启动时间会有所不同。我还感到困惑的是,您的10M文件比1M文件只需要20%的下载时间。某些时候必须涉及缓存。我不认为您的基准有效。同样,命令大小并不能说明启动时需要加载的所有库的大小。
–oᴉɹǝɥɔ
12月9日20:05
评论
主要区别在于wget用于下载内容,而curl用于通过使用特定协议来测试通信。关于wget的一个有趣的事实:>仅使用qwerty键盘上的左键即可输入Wget!
来自curl作者:daniel.haxx.se/docs/curl-vs-wget.html