cURL e wget su Linux: qual è la differenza?

cURL e wget su Linux: qual è la differenza?

Se chiedi a un gruppo di utenti Linux cosa usano per scaricare i file, alcuni diranno wgete altri diranno cURL. Qual è la differenza ed è uno migliore dell’altro?

Tutto è iniziato con la connessione

I ricercatori governativi hanno iniziato a collegare tra loro varie reti già negli anni ’60, ottenendo reti interconnesse. Ma la nascita di Internet come la conosciamo è stata il 1 gennaio 1983, quando è stato implementato il protocollo TCP/IP. Era l’anello mancante. Ciò ha consentito a diversi computer e reti di comunicare utilizzando uno standard comune.

Nel 1991,  il CERN  ha rilasciato il suo software per il World Wide Web, che ha utilizzato internamente per diversi anni. L’interesse per questa sovrapposizione visiva per il web è stato immediato e diffuso. Alla fine del 1994 c’erano  10.000 server web e 10 milioni di utenti .

Queste due pietre miliari – Internet e il World Wide Web – rappresentano aspetti molto diversi della connettività. Ma condividono anche molte delle stesse caratteristiche.

Comunicazione significa proprio questo. Ti stai connettendo a un dispositivo remoto, come un server. E ti connetti ad esso perché contiene qualcosa di cui hai bisogno o che desideri. Ma come ottenere questa risorsa ospitata in remoto sulla macchina locale dalla riga di comando di Linux?

Nel 1996 sono apparse due utilità che permettevano di scaricare risorse ospitate in remoto. Questo è wgetquello che è uscito a gennaio e cURLche è uscito a dicembre. Entrambi funzionano sulla riga di comando di Linux. Entrambi si connettono a server remoti ed entrambi recuperano i dati per te.

Ma non è solo il solito caso in cui Linux fornisce due o più strumenti per fare lo stesso lavoro. Queste utilità hanno scopi diversi e specializzazioni diverse. Il problema è che sono abbastanza simili da creare confusione su quale usare e quando.

Considera due chirurghi. Probabilmente non vuoi che un chirurgo oculista esegua un’operazione di bypass cardiaco su di te, né vuoi che un chirurgo cardiaco esegua un’operazione di cataratta su di te. Sì, sono entrambi professionisti medici altamente qualificati, ma questo non significa che possano sostituirsi a vicenda.

Lo stesso vale per wgete cURL.

Scopi diversi, funzioni diverse, alcune sovrapposizioni

La lettera “w” nel wgetcomando ne indica lo scopo. Il suo scopo principale è caricare pagine web o addirittura interi siti web. La sua manpagina lo descrive come un’utilità per scaricare file da Internet utilizzando i protocolli HTTP, HTTPS e FTP.

Al contrario, cURLfunziona con 26 protocolli, inclusi SCP, SFTP e SMSB, oltre a HTTPS. La sua manpagina dice che è uno strumento per trasferire dati da o verso un server. Non è specificamente progettato per funzionare con i siti Web. È progettato per comunicare con server remoti utilizzando uno dei numerosi protocolli Internet supportati.

Quindi wgetè prevalentemente orientato al sito Web, cURLmentre funziona a un livello più profondo, a livello di semplice Internet vaniglia.

wgetpuò recuperare pagine Web e navigare in modo ricorsivo attraverso intere strutture di directory sui server Web per scaricare interi siti Web. Può anche impostare i collegamenti sulle pagine recuperate in modo che puntino correttamente alle pagine Web sul computer locale, anziché alle loro controparti su un server Web remoto.

cURLti permette di interagire con un server remoto. Può scaricare file così come estrarli. cURL funziona con i proxy SOCKS4 e SOCKS5 e HTTPS ai proxy. Supporta la decompressione automatica di file compressi nei formati GZIP, BROTLI e ZSTD. cURLconsente inoltre di scaricare più trasferimenti in parallelo.

La sovrapposizione tra i due è che wgetentrambi cURLconsentono di ottenere pagine Web e utilizzare server FTP.

Questa è solo una metrica approssimativa, ma puoi avere un’idea dei set di funzionalità relativi dei due strumenti guardando la lunghezza delle loro manpagine. Sulla nostra macchina di prova, la pagina man per wgetè lunga 1433 righe. La pagina manper cURLè un enorme 5296 righe.

Una rapida occhiata a wget

Dato wgetche fa parte del progetto GNU , dovresti trovarlo preinstallato su tutte le distribuzioni Linux. È facile da usare, soprattutto per gli usi più comuni: scaricare pagine web o file.

Basta usare wgetil comando con l’URL della pagina web o del file remoto.

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

Il file viene estratto e salvato sul tuo computer con il nome originale.

Per salvare il file con un nuovo nome, utilizzare l’ -Oopzione (documento di output).

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

Il file risultante viene salvato con il nome che abbiamo scelto.

Non utilizzare questa -Oopzione durante la ricerca di siti Web. Se lo fai, tutti i file estratti verranno aggiunti a uno.

Per ottenere l’intero sito Web, utilizzare il -mparametro (mirror) e l’URL della home page del sito Web. È inoltre possibile utilizzare --page-requisitesper assicurarsi che vengano caricati anche tutti i file di supporto necessari per visualizzare correttamente le pagine Web. Questa --convert-linksimpostazione configura i collegamenti nel file risultante in modo che puntino alle destinazioni corrette sul computer locale, anziché a posizioni esterne sul sito Web.

Una rapida occhiata a cURL

cURLè un progetto open source indipendente. Viene preinstallato su Manjaro 21 e Fedora 36 ma doveva essere installato su Ubuntu 21.04.

Questo è il comando per installare cURL su Ubuntu.

sudo apt install curl

Per caricare lo stesso file di wgete salvarlo con lo stesso nome, dobbiamo usare questo comando. Si noti che l’ -oopzione (exit) è scritta in minuscolo con cURL.

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

Il file è stato scaricato per noi. Durante il download viene visualizzata una barra di avanzamento ASCII.

Per connettersi a un server FTP e caricare un file, utilizzare l’ -uopzione (utente) e specificare una coppia nome utente/password, in questo modo:

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

Questo scarica e rinomina il file dal server FTP di prova.

Non c’è di meglio

È impossibile rispondere “Quale dovrei usare” senza chiedere “Cosa stai cercando di fare?”

Una volta capito cosa wgete cosa cURLfare, capirai che non sono in competizione. Non soddisfano lo stesso requisito e non tentano di fornire la stessa funzionalità.

Il caricamento di pagine Web e siti Web è wgetdove risiede l’eccellenza. Se è quello che stai facendo, usa wget. Per tutto il resto, come scaricare o utilizzare uno qualsiasi dei molti altri protocolli, utilizzare cURL.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *