Ces deux noms curl
et wget
sont utilisés pour télécharger des fichiers, etc. Y a-t-il une raison pour utiliser l'un sur l'autre?
Une fois que vous avez défini "utilisation appropriée", utilisez wget
name__.
Pourquoi? C'est pourquoi:
Récursif! Le principal atout de wget par rapport à curl est sa capacité à télécharger de manière récursive, ou même simplement à télécharger tout ce qui est référencé depuis une ressource distante, qu'il s'agisse d'une page HTML ou d'une liste de répertoires FTP.
Sans vergogne copié de ici
curl
name__ bibliothèque . curl
est optimisé par libcurl
- une bibliothèque multiplate-forme avec une API stable pouvant être utilisée par tout un chacun. Cette différence est majeure car elle crée une attitude complètement différente sur la manière de faire les choses en interne. Il est également un peu plus difficile de créer une bibliothèque qu'un "simple" outil de ligne de commande.
tuyaux . curl
fonctionne plus comme la commande Unix cat
traditionnelle, il envoie plus de choses à stdout
et lit davantage à partir de stdin
de manière "tout est tuyau". wget
ressemble plus à cp
name__, en utilisant le même analogue.
Seul coup . curl
est essentiellement conçu pour effectuer des transferts de données uniques. Il transfère uniquement les URL spécifiées par l'utilisateur et ne contient aucune logique de téléchargement récursif ni aucun type d'analyseur HTML.
Plus de protocoles . curl
prend en charge les protocoles FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMB/CIFS, SMTP, RTMP et RTSP. Wget ne supporte que HTTP, HTTPS et FTP.
Plus portable . curl
construit et fonctionne sur beaucoup plus de plateformes que wget
name__. Par exemple: OS/400, TPF et d'autres plates-formes plus "exotiques" qui ne sont pas des clones Unix simples.
Plus de bibliothèques SSL et de support SSL . curl
peut être construit avec l'une des onze (11!) bibliothèques SSL/TLS différentes. Il offre plus de contrôle et une prise en charge plus étendue des détails de protocole. curl
prend en charge l'épinglage de clé publique.
Authentification HTTP . curl
prend en charge davantage de méthodes d'authentification HTTP, en particulier via les serveurs proxy HTTP: Basic, Digest, NTLM et Negotiate
CHAUSSETTES. curl
supporte plusieurs versions du protocole SOCKS pour l'accès proxy
Bidirectionnel . curl
offre des fonctionnalités de téléchargement et d'envoi. wget
offre uniquement un support HTTP POST simple.
Envoi multipart/formulaire-données HTTP , qui permet aux utilisateurs d'effectuer un "téléchargement" HTTP et en général d'émuler des navigateurs et de faire une automatisation HTTP plus large
curl
supporte gzip
et gonfle Content-Encoding et effectue une décompression automatique
curl
offre et effectue la décompression de HTTP encodé par transfert, wget pas
curl
supporte HTTP/2 et se connecte en double pile avec Happy Eyeballs
Beaucoup plus d'activité de développement . Bien que cela puisse être débattu, j’envisage trois paramètres ici: l’activité de la liste de diffusion, la fréquence de validation du code source et la fréquence de publication. Tous ceux qui suivent ces deux projets peuvent voir que le projet Curl a un rythme beaucoup plus rapide dans tous ces domaines, et ce depuis 10 ans. Comparer sur openhub
wget
name__wget
est en ligne de commande uniquement. Il n'y a pas de bibliothèque.
Récursif ! Le principal atout de wget
name __ par rapport à curl est sa capacité à télécharger de manière récursive, ou même simplement télécharger tout ce qui est référencé depuis une ressource distante, qu’il s’agisse d’une page HTML ou d’une liste de répertoires FTP.
Plus ancien . wget
a des traces remontant à 1995, alors que curl
ne peut être suivi au plus tôt à la fin de 1996.
GPL. wget
est 100% GPL v3. curl est MIT sous licence.
GNU. wget
fait partie du projet GNU et tous les droits d'auteur sont attribués à la FSF. Le projet Curl est entièrement autonome et indépendant, sans organisation parentale avec presque tous les droits d'auteur détenus par Daniel.
wget
ne nécessite aucune option supplémentaire pour simplement télécharger une URL distante dans un fichier local, alors que curl
nécessite -o
ou -O
.
wget
prend en charge la liste des suffixes publics pour la gestion des domaines de cookie, contrairement à curl.
wget
ne prend en charge que GnuTLS ou OpenSSL pour SSL/TLS
wget
ne prend en charge que l'authentification de base en tant que seul type d'authentification sur le proxy HTTP
wget
n'a pas de support SOCKS
Sa capacité à récupérer d'un transfert prématurément rompu et à poursuivre le téléchargement n'a pas d'équivalent en boucle.
wget
peut être saisi en utilisant uniquement la main gauche sur un clavier qwerty!
De nombreux outils peuvent être téléchargés, tels que curl
, snarf
, wget
, pavuk
, fget
, fetch
, lftp
, aria2
, HTTrack
, etc. Utilisez-le en fonction de vos besoins et des fonctionnalités que vous souhaitez utiliser avec le téléchargement. Vérifiez table de fonctions et utilisez-le en conséquence.
Curl:
Wget:
Ressources importantes pour plus d'informations:
Voici une bonne explication curl vs Wget .
Tableau des fonctionnalités: Comparez les fonctionnalités de cURL avec d'autres outils de téléchargement
Détail des fonctionnalités supportées par curl: fonctionnalités - que peut-on curl faire
Détail des fonctionnalités prises en charge par wget: fonctionnalités de wget
Ils ont beaucoup de fonctionnalités en commun, mais curl
a plus d'options. Pour wget
, il peut parfois être suffisant de feuilleter man wget
, mais pour curl
, je dois étudier cette page Web dans un navigateur. Je crois que tout ce que votre navigateur peut faire, curl
peut également le faire.
Il y a une autre différence entre wget et curl qui, à mon avis, est significative.
Wget est un utilitaire de ligne de commande autonome destiné principalement à récupérer du contenu Internet rapidement et simplement.
Curl, d’autre part, est fondamentalement un frontal pour la puissante bibliothèque libcurl. Libcurl fournit un ensemble très puissant d’outils permettant de travailler avec des URL sous toutes leurs formes et variantes, et est disponible pour presque toutes les langues et plates-formes. Curl vous donne essentiellement la possibilité d’utiliser cette bibliothèque dans des scripts Shell.