Qual è la differenza tra wget e curl?

What Is Difference Between Wget Vs Curl



Spesso abbiamo bisogno di scaricare file da server remoti sulla nostra macchina locale. Su un desktop grafico, possiamo utilizzare un browser GUI e fare clic sul pulsante di download. Tuttavia, su un terminale, è necessario utilizzare strumenti sviluppati per il terminale. Quando si scaricano file dal terminale, spesso vengono visualizzati quattro strumenti: arricciare , spalla , wget , e aria2 . Mentre axel e aria2 potrebbero non essere ben noti, la maggior parte degli utenti di terminale conosce curl e wget.

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 cURL

sudo apt-get installarricciare

# installa wget

sudo apt-get install wget

Arco / Mangiaro:

# installa cURL

sudopacman-Sarricciare

# installa wget

sudopacman-S wget

REHL/CentOS/Fedora:

# installa cURL

sudo 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.html

arricciare 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.zst

wget --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.