Linux 上的 cURL 和 wget:有什麼區別?

Linux 上的 cURL 和 wget:有什麼區別?

如果你問一組 Linux 用戶他們用什麼來下載文件,有些人會說,有些wget人會說cURL. 有什麼區別,一個比另一個好?

一切從連接開始

政府研究人員早在 1960 年代就開始將各種網絡連接在一起,從而形成了相互連接的網絡。但眾所周知,互聯網的誕生是在 1983 年 1 月 1 日,當時 TCP/IP 協議實現了。這是缺失的環節。這允許不同的計算機和網絡使用通用標准進行通信。

1991 年,  CERN  發布了他們的萬維網軟件,他們在內部使用了幾年。對這種網絡視覺覆蓋的興趣是立即和廣泛的。到 1994 年底,已有  10,000 台 Web 服務器和 1000 萬用戶

這兩個里程碑——互聯網和萬維網——代表了連接性的不同方面。但它們也有許多相同的特徵。

溝通就是這個意思。您正在連接到某個遠程設備,例如服務器。你連接到它是因為它上面有你需要或想要的東西。但是如何從 Linux 命令行獲取這個遠程託管的資源到本地機器呢?

1996 年,出現了兩個實用程序,可讓您下載遠程託管資源。這是wget一月份cURL出來的,十二月份出來的。這兩個都在 Linux 命令行上工作。它們都連接到遠程服務器並為您獲取數據。

但是,Linux 提供兩個或更多工具來完成相同工作的情況並不只是常見的情況。這些實用程序有不同的用途和不同的專業。問題是它們足夠相似,以至於對使用哪個以及何時使用造成混淆。

考慮兩名外科醫生。您可能不希望眼科醫生對您進行心臟搭橋手術,也不希望心臟外科醫生對您進行白內障手術。是的,他們都是高素質的醫療專業人員,但這並不意味著他們可以相互替代。

wget和也是如此cURL

用途不同,功能不同,有些重疊

命令中的字母“w”wget表示其用途。它的主要目的是加載網頁甚至整個網站。它的man頁面將其描述為使用 HTTP、HTTPS 和 FTP 協議從 Internet 下載文件的實用程序。

相反,cURL它支持 26 種協議,包括 SCP、SFTP 和 SMSB,以及 HTTPS。它man的頁面說它是一種將數據傳輸到服務器或從服務器傳輸數據的工具。它不是專門為與網站一起使用而設計的。它旨在使用許多受支持的 Internet 協議中的任何一種與遠程服務器進行通信。

所以wget它主要是面向網站的,cURL雖然它在更深層次上工作,在普通的互聯網級別。

wget可以檢索網頁,並且可以遞歸地瀏覽網絡服務器上的整個目錄結構以下載整個網站。它還可以將檢索到的頁面上的鏈接設置為正確指向本地計算機上的網頁,而不是遠程 Web 服務器上的對應網頁。

cURL允許您與遠程服務器交互。它可以下載文件以及提取它們。cURL 適用於 SOCKS4 和 SOCKS5 代理,以及 HTTPS 到代理。它支持自動解壓 GZIP、BROTLI 和 ZSTD 格式的壓縮文件。cURL還允許您並行下載多個傳輸。

兩者的重疊之處在於wgetcURL允許您獲取網頁並使用 FTP 服務器。

這只是一個粗略的衡量標準,但你可以通過查看它們的man頁面長度來了解這兩個工具的相對特徵集。在我們的測試機器上,手冊頁長達wget1433 行。頁面高達 5296 行mancURL

快速瀏覽 wget

由於wget它是GNU項目的一部分,您應該會發現它預裝在所有 Linux 發行版上。它易於使用,尤其適用於最常見的用途:下載網頁或文件。

只需wget將命令與網頁或遠程文件的 URL 一起使用。

wget https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc

該文件被提取並以原始名稱保存在您的計算機上。

要使用新名稱保存文件,請使用-O(輸出文檔)選項。

wget -O word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc

生成的文件以我們選擇的名稱保存。

-O搜索網站時不要使用此選項。如果您這樣做,所有提取的文件將被添加到一個。

要獲取整個網站,請使用-m(mirror) 參數和網站主頁的 URL。您還可以使用--page-requisites確保正確顯示網頁所需的所有支持文件也已加載。此--convert-links設置將生成文件中的鏈接配置為指向本地計算機上的正確目標,而不是指向網站上的外部位置。

快速瀏覽 cURL

cURL是一個獨立的開源項目。它預裝在 Manjaro 21 和 Fedora 36 上,但需要安裝在 Ubuntu 21.04 上。

這是在 Ubuntu 上安裝 cURL 的命令。

sudo apt install curl

要加載與 with 相同的文件wget並以相同的名稱保存,我們需要使用此命令。請注意,-o(exit) 選項以小寫形式使用cURL.

curl -o word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc

該文件已為我們下載。下載過程中會顯示一個 ASCII 進度條。

要連接到 FTP 服務器並上傳文件,請使用-u(user) 選項並指定用戶名/密碼對,如下所示:

curl -o test.png -u demo:password ftp://test.rebex.net/pub/example/KeyGenerator.png

這將從測試 FTP 服務器下載並重命名文件。

沒有更好的

不問“你想做什麼?”就不可能回答“我應該使用哪個”。

一旦你了解了做什麼wgetcURL做什麼,你就會明白他們不是在競爭。它們不滿足相同的要求,也不試圖提供相同的功能。

加載網頁和網站是wget卓越所在。如果這就是您正在做的事情,請使用wget. 對於其他一切——比如下載或使用許多其他協議中的任何一個——使用cURL.

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *