Entrambi curl
e wget
vengono utilizzati per il download di file, ecc. C'è qualche motivo per usarne uno rispetto all'altro?
Entrambi curl
e wget
vengono utilizzati per il download di file, ecc. C'è qualche motivo per usarne uno rispetto all'altro?
Risposte:
Dopo aver definito "uso corretto", utilizzare wget
.
Perché? Ecco perchè:
Ricorsivo! Il principale punto di forza di wget rispetto all'arricciatura è la sua capacità di scaricare in modo ricorsivo, o anche semplicemente scaricare tutto ciò che viene indicato da una risorsa remota, sia essa una pagina HTML o un elenco di directory FTP.
Senza vergogna copiato da qui
curl
biblioteca . curl
è alimentato da libcurl
: una libreria multipiattaforma con un'API stabile che può essere utilizzata da tutti. Questa differenza è importante poiché crea un atteggiamento completamente diverso su come fare le cose internamente. È anche leggermente più difficile creare una libreria che un "semplice" strumento da riga di comando.
tubi . curl
funziona più come il tradizionale cat
comando Unix , invia più roba a stdout
, e legge di più da stdin
"tutto è un tubo". wget
è più simile cp
, usando lo stesso analogo.
Colpo singolo . curl
è fatto essenzialmente per eseguire trasferimenti di dati a colpo singolo. Trasferisce solo gli URL specificati dall'utente e non contiene alcuna logica di download ricorsiva né alcun tipo di parser HTML.
Altri protocolli . curl
supporta FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMB / CIFS, SMTP, RTMP e RTSP. Wget supporta solo HTTP, HTTPS e FTP.
Più portatile . curl
costruisce e funziona su molte più piattaforme di wget
. Ad esempio: OS / 400, TPF e altre piattaforme "esotiche" che non sono cloni Unix diretti.
Altre librerie SSL e supporto SSL . curl
può essere costruito con una su undici (11!) librerie SSL / TLS diverse e offre un maggiore controllo e un supporto più ampio per i dettagli del protocollo. curl
supporta l'inserimento di chiavi pubbliche.
HTTP auth . curl
supporta più metodi di autenticazione HTTP, in particolare su proxy HTTP: Basic, Digest, NTLM e Negotiate
CALZE . curl
supporta diverse versioni del protocollo SOCKS per l'accesso proxy
Bidirezionale . curl
offre funzionalità di upload e invio. wget
offre solo il semplice supporto POST HTTP.
Invio HTTP multipart / form-data , che consente agli utenti di eseguire "upload" HTTP e in generale di emulare i browser e di eseguire l'automazione HTTP in misura maggiore
curl
supporta gzip
e gonfia la codifica dei contenuti e esegue la decompressione automatica
curl
offre ed esegue la decompressione di HTTP con codifica di trasferimento, wget no
curl
supporta HTTP / 2 e esegue connessioni dual-stack utilizzando Happy Eyeballs
Molto più attività per gli sviluppatori . Mentre questo può essere discusso, considero tre parametri qui: attività della mailing list, frequenza di commit del codice sorgente e frequenza di rilascio. Chiunque segua questi due progetti può vedere che il progetto curl ha un ritmo molto più alto in tutte queste aree, ed è stato così per oltre 10 anni. Confronta su openhub
wget
wget
è solo riga di comando. Non c'è biblioteca.
Ricorsivo ! wget
Il principale punto di forza rispetto all'arricciatura è la sua capacità di scaricare in modo ricorsivo, o anche solo di scaricare tutto ciò a cui si fa riferimento da una risorsa remota, che si tratti di una pagina HTML o di un elenco di directory FTP.
Più vecchio . wget
risale al 1995, mentre curl
può essere rintracciato non prima della fine del 1996.
GPL . wget
è 100% GPL v3. curl è concesso in licenza dal MIT.
GNU . wget
fa parte del progetto GNU e tutti i diritti d'autore sono assegnati a FSF. Il progetto curl è completamente autonomo e indipendente, senza alcuna organizzazione genitoriale con quasi tutti i diritti d'autore di proprietà di Daniel.
wget
non richiede opzioni extra per scaricare semplicemente un URL remoto in un file locale, mentre curl
richiede -o
o -O
.
wget
supporta l'elenco dei suffissi pubblici per la gestione dei domini dei cookie, curl no.
wget
supporta solo GnuTLS o OpenSSL per il supporto SSL / TLS
wget
supporta solo l'autent di base come unico tipo di autenticazione su proxy HTTP
wget
non ha supporto SOCKS
La sua capacità di recuperare da un trasferimento interrotto prematuramente e continuare a scaricare non ha alcuna controparte in arricciatura.
wget
può essere digitato usando solo la mano sinistra su una tastiera qwerty!
curl -C -
download non viene interrotto?
wget can be typed in using only the left hand on a qwerty keyboard!
, WTF ?? wget requires no extra options to simply download a remote URL to a local file, while curl requires -o or -O.
Ci sono molti strumenti che possono scaricare come curl
, snarf
, wget
, pavuk
, fget
, fetch
, lftp
, aria2
, HTTrack
ecc Usa secondo il vostro requisito e che funzione che si desidera utilizzare con il download. Controllare la tabella delle caratteristiche e utilizzare di conseguenza.
Ricciolo:
Wget:
Risorse importanti per maggiori informazioni:
Ecco una buona spiegazione curl vs Wget .
Tabella delle funzionalità: confronta le funzionalità cURL con altri strumenti di download
Dettaglio delle funzioni supportate per l'arricciatura: Funzioni: cosa può fare l'arricciatura
Dettaglio delle funzionalità supportate da wget : funzionalità di wget
Hanno molte funzionalità in comune, ma curl
ha più opzioni. Perché wget
a volte può essere sufficiente sfogliare man wget
, ma per curl
ho bisogno di studiare questa pagina web in un browser. Credo che qualsiasi cosa possa fare il tuo browser, curl
anche.
C'è un'altra differenza tra wget e curl che penso sia significativa.
Wget è un'utilità della riga di comando autonoma destinata principalmente al recupero di contenuti Internet in modo rapido e semplice.
D'altra parte, Curl è fondamentalmente un front-end terminale per la potente libreria libcurl. Libcurl offre un potente set di strumenti per lavorare con gli URL in tutte le loro forme e varianti ed è disponibile per quasi tutte le lingue e piattaforme. Fondamentalmente Curl ti dà la possibilità di usare questa libreria negli script di shell.