Quelle est la différence entre curl et wget? [fermé]

37

Ces deux curl et wget sont utilisés pour télécharger des fichiers, etc. Y a-t-il une raison d'utiliser l'un sur l'autre?

    
posée snoop 25.09.2015 - 19:47
la source

4 réponses

32

Après avoir défini "utilisation correcte", utilisez wget .

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 à télécharger tout ce qui est appelé depuis une ressource distante, que ce soit une page HTML ou une liste de répertoires FTP.

Sans vergogne copié depuis ici

curl

  • bibliothèque . curl est alimenté par libcurl - une bibliothèque multi-plateforme avec une API stable qui peut être utilisée par tous. Cette différence est majeure car elle crée une attitude complètement différente sur la façon 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".

  • pipes . curl fonctionne plus comme la commande Unix cat traditionnelle, il envoie plus de choses à stdout et lit plus de stdin dans une manière "tout est un tuyau". wget ressemble plus à cp , utilisant le même analogue.

  • Single shot . curl est essentiellement conçu pour effectuer des transferts de données en une seule fois. Il ne transfère que les URL spécifiées par l'utilisateur et ne contient aucune logique de téléchargement récursif, ni aucun analyseur HTML.

  • Plus de protocoles . curl prend en charge FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FICHIER, POP3, IMAP, SMB / CIFS, SMTP, RTMP et RTSP. Wget ne prend en charge que HTTP, HTTPS et FTP.

  • Plus portable . curl construit et s'exécute sur beaucoup de plates-formes plus que wget . Par exemple: OS / 400, TPF et 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 une bibliothèque SSL / TLS sur onze (11!) et offre plus de contrôle et une prise en charge plus étendue des détails du protocole. curl prend en charge l'épinglage de clés publiques.

  • HTTP auth . curl prend en charge davantage de méthodes d'authentification HTTP, en particulier sur les proxies HTTP: Basic, Digest, NTLM et Negotiate

  • SOCKS . curl prend en charge plusieurs versions du protocole SOCKS pour l'accès proxy

  • Bidirectionnel . curl offre des fonctionnalités d'envoi et d'envoi. wget n'offre qu'un support HTTP POST simple.

  • envoi HTTP multipart / form-data , qui permet aux utilisateurs d'effectuer un "téléchargement" HTTP et, en général, d'émuler des navigateurs et d'automatiser le protocole HTTP de manière plus étendue

  • curl prend en charge gzip et gonfle le codage du contenu et effectue la décompression automatique

  • curl offre et effectue la décompression du HTTP codé par transfert, wget ne le fait pas

  • curl prend en charge HTTP / 2 et la double pile se connecte avec Happy Eyeballs

  • Activité de développeur beaucoup plus . Bien que cela puisse être débattu, je considère trois mesures ici: l'activité de la liste de diffusion, la fréquence de validation du code source et la fréquence de publication. Quiconque suit ces deux projets peut constater que le projet Curl a un rythme beaucoup plus élevé dans tous ces domaines, et ce depuis plus de 10 ans. Comparez sur openhub

wget

  • wget est uniquement la ligne de commande. Il n'y a pas de bibliothèque.

  • Récursive ! Le principal avantage de wget par rapport à curl est sa capacité à télécharger de manière récursive, ou même à télécharger tout ce qui est appelé depuis une ressource distante, que ce soit une page HTML ou une liste de répertoires FTP.

  • Plus ancien . wget a des traces remontant à 1995, tandis que curl ne peut pas être retrouvé avant la fin de 1996.

  • GPL . wget est 100% GPL v3. curl est sous licence MIT.

  • 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. Aucune organisation n’est responsable de la propriété de presque tous les droits d’auteur appartenant à Daniel.

  • wget ne nécessite aucune option supplémentaire pour télécharger simplement une URL distante dans un fichier local, tandis que curl requiert -o ou -O .

  • wget prend en charge la liste de suffixes publics pour la gestion des domaines de cookies, contrairement à curl.

  • wget ne prend en charge que le support GnuTLS ou OpenSSL pour SSL / TLS

  • wget ne prend en charge que l'authentification de base comme seul type d'authentification sur le proxy HTTP

  • wget n'a pas de support SOCKS

  • Sa capacité à se remettre d’un transfert prématurément interrompu et à continuer à télécharger n’a pas d’autre chose en curl.

  • wget peut être saisi en utilisant uniquement la main gauche sur un clavier qwerty!

réponse donnée A.B. 25.09.2015 - 20:12
la source
18

De nombreux outils peuvent être téléchargés comme curl , snarf , wget , pavuk , fget , fetch , lftp , aria2 , HTTrack etc. Utilisez-le selon vos besoins et la fonctionnalité que vous souhaitez utiliser avec le téléchargement. Vérifiez tableau des fonctionnalités et utilisez-le en conséquence.

Curl:

  • Curl supporte plus de protocoles FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FICHIER, POP3, IMAP, SMTP, RTMP et RTSP
  • Curl supporte plus de bibliothèques SSL
  • Curl prend en charge davantage de méthodes d’authentification HTTP, en particulier via HTTP proxy: Basic, Digest, NTLM et Negotiate
  • Curl est alimenté par libcurl -une bibliothèque multi-plateforme avec un stable API utilisable par tous

Wget:

  • Alors que wget prend en charge HTTP, HTTPS et FTP
  • Wget ne prend en charge que le support GnuTLS ou OpenSSL pour SSL / TLS
  • Wget ne prend en charge que l'authentification de base comme seul type d'authentification sur le proxy HTTP
  • Wget est un outil en ligne de commande uniquement, il n’a pas de bibliothèque.

Ressources importantes pour plus d'informations:

réponse donnée pl_rock 25.09.2015 - 19:52
la source
3

Ils ont beaucoup de fonctionnalités en commun, mais curl a plus d'options. Pour wget , il peut parfois suffire de parcourir 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.

    
réponse donnée Jos 25.09.2015 - 19:53
la source
1

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 conçu principalement pour récupérer rapidement et simplement du contenu Internet.

Curl, quant à lui, est fondamentalement un frontal de terminal pour la puissante bibliothèque libcurl. Libcurl fournit un ensemble d'outils très puissant pour travailler avec les URL sous toutes leurs formes et variantes, et est disponible pour presque toutes les langues et plates-formes. Curl vous donne la possibilité d'utiliser cette bibliothèque dans des scripts shell.

    
réponse donnée barbecue 26.09.2015 - 17:01
la source

Lire d'autres questions sur les étiquettes