curl 和 Wget 是 从 Linux 命令行向服务器发出请求的两个最常用的实用程序.
如果您发现自己在两者之间进行交换,其中一个只是激起了您的好奇心,或者您刚刚在网上看到过一些关于它的很好的旧讨论,那么了解一些可能会有所帮助的差异。
虽然您希望使用其中任何一种都能获得流畅的体验,但了解两者之间的基本差异将有助于您更好地掌握两者的使用(并希望从上述充满问题的讨论中解决任何问题)。
主要区别 curl 和 Wget:如何保存输出
最明显的区别 curl Wget 是默认情况下 Wget 将查询到的网页保存到系统中,而 curl 在终端输出中显示它但不保存它。
让我们从一个简单的开始 example 向 Arch Linux 的主页发出请求, https://archlinux.org
.
我们将首先提出请求 curl.
curl 'https://archlinux.org'
注意如何 curl 命令输出网页的原始内容? 就像您单击 Web 浏览器上的查看源代码按钮一样。
让我们尝试使用 Wget 获取相同的网站:
wget 'https://archlinux.org'
看那个,Wget没有显示网页的内容 curl 做过。 但是如果Wget没有显示它,它放在哪里呢?

这就是这两个程序之间的第一个主要区别所在。
默认情况下,Wget 将网站的内容放到一个名为 index.html
:

然后,您可以通过运行查看文件的实际内容 cat index.html
,这将产生与您看到的相同的输出 curl
命令:

如果你想保存文件 curl,你必须使用 -o
选项:
curl -o <output_file> <web_URL>
其他显着差异
除此之外,这实际上几乎是您在使用时可能会注意到的唯一区别 curl 和 Wget。 虽然还有其他一些可能会引起您的兴趣,但它们可能不会对您作为最终用户使用任何一种工具产生太大影响(如果有的话)。
支持
curl 比 Wget 使用得更多,可用于手机、计算机(包括 Windows 和 macOS 等操作系统)等环境,甚至智能手表、智能冰箱和其他类似物品等物联网设备。
开发者使用
下一部分主要是开发人员关心的。 Curl 具有支持 C 等编程语言中的网络请求的库,而 wget 也是严格意义上的命令行,如果您需要从编程语言与其交互,则不会很好地工作。
部分原因与之前的原因有关,并有助于解释为什么 curl 广泛用于不同类型的环境和设备。
总结
就是这样! 希望您现在已经看到,两者之间的差异比某些人想象的要小得多。
如果您决定长期选择一种工具,我绝对会推荐 curl,它是我在自己的项目中使用的,而且它比 Wget 使用得更广泛。
想要在两者之间进行更全面的磨合吗? 查看 curl 与 Wget Daniel Stenberg 的文章( curl),这涉及到两个工具之间不同的一堆更高级的东西。