cURL e wget su Linux: qual è la differenza?
Se chiedi a un gruppo di utenti Linux cosa usano per scaricare i file, alcuni diranno wget
e 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 è wget
quello che è uscito a gennaio e cURL
che è 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 wget
e cURL
.
Scopi diversi, funzioni diverse, alcune sovrapposizioni
La lettera “w” nel wget
comando ne indica lo scopo. Il suo scopo principale è caricare pagine web o addirittura interi siti web. La sua man
pagina lo descrive come un’utilità per scaricare file da Internet utilizzando i protocolli HTTP, HTTPS e FTP.
Al contrario, cURL
funziona con 26 protocolli, inclusi SCP, SFTP e SMSB, oltre a HTTPS. La sua man
pagina 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, cURL
mentre funziona a un livello più profondo, a livello di semplice Internet vaniglia.
wget
può 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.
cURL
ti 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. cURL
consente inoltre di scaricare più trasferimenti in parallelo.
La sovrapposizione tra i due è che wget
entrambi cURL
consentono 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 man
pagine. Sulla nostra macchina di prova, la pagina man per wget
è lunga 1433 righe. La pagina man
per cURL
è un enorme 5296 righe.
Una rapida occhiata a wget
Dato wget
che 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 wget
il 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’ -O
opzione (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 -O
opzione 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 -m
parametro (mirror) e l’URL della home page del sito Web. È inoltre possibile utilizzare --page-requisites
per assicurarsi che vengano caricati anche tutti i file di supporto necessari per visualizzare correttamente le pagine Web. Questa --convert-links
impostazione 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 wget
e salvarlo con lo stesso nome, dobbiamo usare questo comando. Si noti che l’ -o
opzione (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’ -u
opzione (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 wget
e cosa cURL
fare, 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 è wget
dove 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