In questo tutorial, esamineremo curl e wget, come iniziare e, soprattutto, le differenze tra di essi.
Cos'è cURL?
cURL è un'utilità da riga di comando gratuita e open source che consente agli utenti di trasferire dati da una macchina remota a un'altra con un'interazione minima o nulla da parte dell'utente. L'uso di CURL è prevalente in dispositivi come router, stampanti, telefoni, tablet, lettori multimediali e altro.
Supporta il download e il caricamento utilizzando protocolli come HTTP/HTTPS, FTP, SFTP, SCP, IMAP, LDAP/LDAPS, SMB/SMBS, TELNET, POP3, GOPHER e molti, molti altri.
cURL fornisce anche proxy, riprendere i trasferimenti, autenticazione utente, certificati SSL e molto altro ancora.
Cos'è wget?
GNU Wget, comunemente chiamato wget, è un'utilità da riga di comando gratuita per il trasferimento di file tramite HTTP/HTTPS, FTP e FTPS. Fornisce funzionalità come download ricorsivi, controllo della larghezza di banda, riprende i trasferimenti interrotti, download in background, file e directory mirror ricorsivi e molto altro.
Come installare cURL e Wget?
cURL e wget sono strumenti popolari prontamente disponibili nelle principali distribuzioni Linux; se non hai nessuno degli strumenti installati, usa i comandi seguenti per installare:
Debian/Ubuntu:
# installa cURLsudo apt-get installarricciare
# installa wget
sudo apt-get install wget
Arco / Mangiaro:
# installa cURLsudopacman-Sarricciare
# installa wget
sudopacman-S wget
REHL/CentOS/Fedora:
# installa cURLsudo yum installaarricciare
sudodnfinstallarearricciare
# installa wget
sudo yum installa wget
sudodnfinstallare wget
Come utilizzare cURL e Wget (casi d'uso di esempio)?
Per assicurarti di comprendere le somiglianze e le differenze tra cURL e wget, è bene guardare alcuni esempi:
Protocolli HTTP/HTTPS:
Sia cURL che wget supportano i protocolli HTTP e HTTPS. Quindi, se scarichiamo un sito Web come linuxhint.com:
arricciare https://linuxhint.com-olinuxhint.htmlarricciare https://linuxhint.com-olinuxhint.html
%Totale%Ricevuto%Xferd Velocità media Tempo Tempo Tempo Corrente
Dload Carica la velocità totale spesa rimasta
100256 k0256 k0 0166k0-: -: -0:00:01 --:--:-- 166k
Per impostazione predefinita, cURL stamperà il contenuto della risorsa web nel terminale. Usiamo il flag -o per reindirizzare l'output su un file.
Quanto segue si applica a wget:
wgethttps://linuxhint.com---2021-06-2005:09:Quattro cinque- https://linuxhint.com/
Risoluzione di linuxhint.com(linuxhint.com)... 104.21.58.234, 172.67.209.252,2606:4700:3033::6815:3aea, ...
Connessione a linuxhint.com(linuxhint.com)|104.21.58.234|:443... connesso.
Richiesta HTTP inviata, in attesa di risposta...200ok
Lunghezza: non specificata[testo/html]
Salvataggio in: 'index.html'
index.html
[ <=> ]256.25K 506KB/Sin0.5s
2021-06-venti05:09:46 (506KB/S)- 'index.html' salvato[262396]
Wget, d'altra parte, salva la risorsa richiesta in un file.
È bene notare che entrambi gli strumenti scaricano la risorsa. I dettagli ls dei due file mostrano entrambe le dimensioni dei file.
$ls -lindex.html linuxhint.html-rw-rw-r-- 1linuxhint linuxhint262396giugno19 quindici:cinquantaindex.html
-rw-rw-r-- 1linuxhint linuxhint262396giugnoventi05:07 linuxhint.html
Protocollo FTP:
Sia cURL che wget supportano i download sui protocolli FTP. Tuttavia, cURL supporta il caricamento su ftp.
Usa il comando seguente per scaricare file dal server FTP con wget:
wget --utente= debian--parola d'ordine='debian' ftp://192.168.0.112/backup.zstwget --utente= debian--parola d'ordine='debian'ftp://192.168.0.112/backup.zst
---2021-06-2005:29: 06-- ftp://192.168.0.112/backup.zst
=>'backup.zst'
Connessione a 192.168.0.112:ventuno... connesso.
Registrazionein comedebian ... Effettuato l'accessoin!
==>SIST... fatto. ==>PWD... fatto.
==>TIPO I ... fatto. ==>CWD non necessario.
==>SIZE backup.zst ... fatto.
==>PASV... fatto. ==>RETR backup.zst ... fatto.
backup.zst
[ <=> ] 0--.- KB/Sin0s
2021-06-venti05:29: 06(0.00B/S)- 'backup.zst' salvato[0]
Usando curl, aggiungi il-ucontrassegna come:
arricciare-udebian:debian 'ftp://192.168.0.112/backup.zst'-obackup.zst
arricciare-udebian: debian'ftp://192.168.0.112/backup.zst' -obackup.zst
%Totale%Ricevuto%Xferd Velocità media Tempo Tempo Tempo Corrente
Dload Carica la velocità totale spesa rimasta
0 0 0 0 0 0 0 0-: -: - -: -: - -: -: -0
Per caricare unfileaftpcon curl, usiamo il-Topzione come:
arricciare-udebian: debian-Tbackup1.zst ftp://192.168.0.112/ftp/
Assicurati che la directory esista e che l'utente disponga dei permessi di scrittura.
NOTA: Sebbene cURL supporti un'ampia varietà di protocolli, non fornisce download ricorsivi. D'altra parte, Wget supporta i download ricorsivi utilizzando l'opzione –recursive poiché entrambi i protocolli HTTP/HTTPS e FTP/FTPS offrono tale funzionalità.
Somiglianze tra wget e cURL
Ora per la ciliegina sulla torta:
- Entrambi gli strumenti supportano protocolli standard come HTTP, HTTPS, FTP, FTPS.
- Entrambi gli strumenti scaricano file da Internet.
- Entrambi gli strumenti supportano i cookie HTTP.
- Entrambi gli strumenti supportano l'output su un file.
- Strumenti sia gratuiti che sviluppati attivamente.
- Entrambi gli strumenti supportano i trasferimenti di curriculum.
- Entrambi gli strumenti supportano HTTP POST.
Differenze tra wget e cURL
Ecco alcune delle differenze tra curl e wget:
- Wget è una semplice utility di trasferimento, mentre curl offre molto di più.
- Curl fornisce la libreria libcurl, che può essere espansa in applicazioni GUI. Wget, d'altra parte, è una semplice utility da riga di comando.
- Wget supporta meno protocolli rispetto a cURL.
- I download ricorsivi non sono supportati in curl.
- Wget è disponibile nativamente nei sistemi Linux, mentre cURL è prontamente disponibile nei sistemi Windows.
- cURL supporta più trasferimenti paralleli.
- cURL esegue decompressioni HTTP con codifica di trasferimento, mentre wget no.
- cURL supporta HTTP bidirezionale mentre wget offre un semplice HTTP POST.
- cURL supporta più metodi di autenticazione HTTP rispetto a wget.
- Wget non supporta SOCKS.
- Wget richiede l'installazione di gnulib.
- A differenza di curl, funzionalità come cookie, timestamp e follow redirect sono abilitate per impostazione predefinita in wget. cURL richiede che ciascuno di essi sia specificato in modo esplicito.
Conclusione
Questo tutorial si è concentrato sulle somiglianze e le differenze tra cURL. Sebbene possa sembrare che cURL sia la scelta migliore, ci sono casi in cui wget è la scelta migliore.
Il mio consiglio è di scegliere ciò che funziona per te.