Qual è la differenza tra Wget vs Curl?

Qual è la differenza tra Wget vs Curl?
Spesso dobbiamo scaricare file da server remoti alla nostra macchina locale. Su un desktop grafico, possiamo utilizzare un browser GUI e fare clic sul pulsante di download. Tuttavia, su un terminale, dobbiamo utilizzare strumenti sviluppati per il terminale.Quando si scaricano i file dal terminale, spesso vengono visualizzati quattro strumenti: Curl, Axel, Wget e Aria2. Mentre Axel e Aria2 potrebbero non essere ben noti, la maggior parte degli utenti del terminale sa Curl e Wget.

In questo tutorial, esamineremo Curl e Wget, come iniziare e, soprattutto, le differenze tra loro.

Cos'è il ricciolo?

Curl è un'utilità di linea di comando gratuita e open source che consente agli utenti di trasferire i dati da una macchina remota all'altra con interazione minima o nessuna utente. L'uso del ricciolo è prevalente in dispositivi come router, stampanti, telefoni, tablet, giocatori di media e altro ancora.

Supporta il download e il caricamento utilizzando protocolli come HTTP/HTTPS, FTP, SFTP, SCP, IMAP, LDAP/LDAPS, SMB/SMBS, Telnet, Pop3, Gopher e molti altri.

Curl fornisce anche proxy, riprende trasferimenti, autenticazione utente, certificati SSL e molto altro ancora.

Cos'è Wget?

GNU WGET, comunemente chiamato WGET, è un'utilità di riga di comando gratuita per il trasferimento di file utilizzando HTTP/HTTPS, FTP e FTPS. Fornisce funzionalità come download ricorsivi, controllo della larghezza di banda, curriculum abortiti trasferimenti, download di sfondo, file e directory ricorsivi di mirror e molti altri.

Come installare Curl e Wget?

Curl e Wget sono strumenti popolari prontamente disponibili nelle principali distribuzioni Linux; Se non hai installato nessuno degli strumenti, si utilizzano i comandi seguenti per installare:

Debian/Ubuntu:

# Installa Curl
sudo apt-get installa curl
# Installa Wget
sudo apt-get installa wget

Arch/Manjaro:

# Installa Curl
Sudo Pacman -s Curl
# Installa Wget
sudo pacman -s wget

Rehl/centos/fedora:

# Installa Curl
sudo yum installa ricci
sudo dnf installa riccio
# Installa Wget
sudo yum installa wget
sudo dnf installa wget

Come usare 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:

Entrambi i protocolli HTTP e HTTPS supportano Curl che Wget. Quindi, se scarichiamo un sito Web come Linuxhint.com:

curl https: // linuxhint.com -o linuxhint.html
curl https: // linuxhint.com -o linuxhint.html
% Totale % ricevuto % XFERD Tempo medio tempo di tempo corrente
DOACARE CUAGATO TOTALE SPEGE SUCCESSIONE
100 256K 0 256K 0 0 166K 0-:-:-0:00:01-:-:-166K

Per impostazione predefinita, Curl stamperà il contenuto della risorsa Web nel terminale. Usiamo il flag -o per reindirizzare l'output in un file.

Quanto segue si applica a Wget:

wget https: // linuxhint.com
--2021-06-20 05: 09: 45-- https: // linuxhint.com/
Risoluzione di Linuxhint.com (Linuxhint.com)… 104.21.58.234, 172.67.209.252, 2606: 4700: 3033 :: 6815: 3aea, ..
Collegamento a Linuxhint.com (Linuxhint.com) | 104.21.58.234 |: 443 ... connesso.
Richiesta http inviata, in attesa di risposta ... 200 ok
Lunghezza: non specificato [testo/html]
Salvataggio su: 'indice.html '
indice.html
[ <=> ] 256.25k 506kb/s in 0.5s
2021-06-20 05:09:46 (506 kb/s)-'indice.Html 'salvato [262396]

Wget, d'altra parte, salva la risorsa richiesta a un file.

È bene notare che entrambi gli strumenti scaricano la risorsa. I dettagli LS dei due file mostrano entrambe le dimensioni dei file.

$ ls -l indice.HTML Linuxhint.html
-RW-RW-R-- 1 Linuxhint Linuxhint 262396 19 giugno 15:50 INDICE.html
-RW-RW-R-- 1 Linuxhint Linuxhint 262396 20 giugno 05:07 Linuxhint.html

Protocollo FTP:

Sia Curl che Wget supportano i download sui protocolli FTP. Tuttavia, Curl supporta il caricamento su FTP.

Utilizzare il comando qui sotto per scaricare i file dal server FTP con WGET:

wget --user = debian - -password = 'debian' ftp: // 192.168.0.112/backup.ZST
wget --user = debian - -password = 'debian' ftp: // 192.168.0.112/backup.ZST
--2021-06-20 05: 29: 06-- ftp: // 192.168.0.112/backup.ZST
=> 'backup.ZST '
Connessione a 192.168.0.112: 21 ... collegato.
Accesso come Debian ... Accesso!
==> Syst ... fatto. ==> pwd ... fatto.
==> Tipo I ... fatto. ==> cwd non necessario.
==> Backup di dimensioni.ZST ... fatto.
==> PASV ... fatto. ==> Retr Backup.ZST ... fatto.
backup.ZST
[ <=> ] 0 --.-Kb/s in 0s
2021-06-20 05:29:06 (0.00 b/s) - 'backup.zst 'salvato [0]
Usando Curl, aggiungi il flag -u come:
Curl -u Debian: Debian 'ftp: // 192.168.0.112/backup.ZST '-O Backup.ZST
Curl -u Debian: Debian 'ftp: // 192.168.0.112/backup.ZST '-O Backup.ZST
% Totale % ricevuto % XFERD Tempo medio tempo di tempo corrente
DOACARE CUAGATO TOTALE SPEGE SUCCESSIONE
0 0 0 0 0 0 0 0 0-:---:-:--:-:-0
Per caricare un file su FTP con Curl, utilizziamo l'opzione -t come:
Curl -u Debian: Debian -t “Backup1.ZST ”ftp: // 192.168.0.112/ftp/

Assicurati che la directory esista e l'utente ha le autorizzazioni di scrittura.

NOTA: Sebbene Curl supporti un'ampia varietà di protocolli, non fornisce download ricorsivi. D'altra parte, WGET supporta download ricorsivi utilizzando l'opzione -recursiva come protocolli HTTP/HTTPS e FTP/FTPS, tali funzionalità.

Somiglianze tra Wget e Curl

Ora per la ciliegina sulla torta:

  • Entrambi gli strumenti supportano i 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 per un file.
  • Strumenti sia liberi che attivamente sviluppati.
  • 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 utilità di trasferimento, mentre Curl offre molto di più.
  • Curl fornisce la libreria Libcurl, che può essere ampliata in applicazioni GUI. Wget, d'altra parte, è una semplice utilità della linea di comando.
  • Wget supporta meno protocolli rispetto a Curl.
  • I download ricorsivi non sono supportati in Curl.
  • Wget è disponibile in modo nativo nei sistemi Linux, mentre Curl è prontamente disponibile nei sistemi Windows.
  • Curl supporta più trasferimenti paralleli.
  • Curl esegue decompressioni HTTP con codifica trasferimento, mentre Wget no.
  • Curl supporta HTTP bidirezionale mentre Wget offre un semplice post HTTP.
  • Curl supporta più metodi di autenticazione HTTP rispetto a Wget.
  • Wget non supporta i calzini.
  • Wget richiede gnulib installato.
  • A differenza di Curl, funzionalità come cookie, timestamp e reindirizzamenti di seguito sono abilitate per impostazione predefinita in WGET. Curl richiede che ciascuno sia specificato esplicitamente.

Conclusione

Questo tutorial si è concentrato sulle somiglianze e sulle differenze tra Curl. Sebbene possa sembrare che Curl sia la scelta superiore, ci sono casi in cui Wget è la scelta migliore.

Il mio consiglio per te è di scegliere ciò che funziona per te.