Quelle est la différence entre curl et wget?

258

Je tiens à connaître la différence entre curlet wget. Les deux sont utilisés pour obtenir des fichiers et des documents, mais quelle est la différence principale entre eux.

Pourquoi existe-t-il deux programmes différents?

lakeh
la source
5
La principale différence est que wget est utilisé pour télécharger des éléments, tandis que curl est utilisé pour tester la communication en utilisant un protocole spécifique.
Pithikos
9
Un fait intéressant à propos de wget:> Wget peut être saisi en utilisant uniquement la main gauche sur un clavier qwerty!
Habeeb Perwad le
2
De l' curlauteur: daniel.haxx.se/docs/curl-vs-wget.html
Vanni

Réponses:

265

Les principales différences sont les suivantes:

  • wgetLe principal atout de la société curlest sa capacité de téléchargement récursif.
  • wgetest en ligne de commande uniquement. Il n'y a pas de lib ou quoi que ce soit, mais curlles fonctionnalités sont gérées par libcurl.
  • curlsoutient FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTMPet RTSP. wgetsoutient HTTP, HTTPSet FTP.
  • curlconstruit et fonctionne sur plusieurs plates - formes que wget.
  • wgetest publié sous une licence de logiciel libre copyleft (la GNU GPL). curlest publié sous une licence permissive de logiciel libre (un dérivé du MIT).
  • curloffre des fonctionnalités de téléchargement et d'envoi. wgetoffre uniquement un support HTTP POST simple.

Vous pouvez voir plus de détails sur le lien suivant:

curl vs Wget

Saeed Zarinfam
la source
1
Merci, c'est exactement ce que je me demandais depuis quelques heures. J'ai utilisé wget pour faire une araignée récursive sur un site, semble caler sur une page qui a onze liens bazillion dessus. En réalité, il fonctionne à 100% de la CPU sur un noyau. J'espérais qu'il y a quelque chose de mieux qui fait cette chose multicœur nouvelle dont j'ai entendu parler.
Brian Topping
1
Une des choses wgetqui reste en dehors de cette réponse est la capacité de mise en miroir de http (ou "spidering"). curlest très bon dans ce qu’il fait, mais cela seul n’est pas destiné à être utilisé pour refléter un site Web.
jsbillings
Et si wput était un alias, supportant ftp?
mckenzm
1
Ces expressions n’ont aucun sens: "et tous les droits d’auteur sont cédés à la FSF", "est totalement autonome et indépendante, sans organisation parentale du tout". Il est évident que l'auteur de cURL en est le détenteur des droits d'auteur. Il est évident que l'auteur de wget en est le détenteur des droits d'auteur. Mais les deux sont libres comme dans les logiciels de liberté. Vous pouvez plutôt dire que wget est sous une licence copyleft, et cURL sous une licence permissive.
Valerio Bozz
1
@ValerioBozz: En fait non. Curl et wget sont des projets communautaires. Avec curl, chaque personne détient le droit d'auteur sur le code auquel elle contribue. Avec Wget, comme avec la plupart des autres programmes GNU, les différents auteurs cèdent leurs droits d'auteur à la FSF. C'est-à-dire qu'ils ne possèdent plus ce code. Cela permettra à la FSF de faire respecter strictement le copyleft et de redonner une licence au code si nécessaire.
Juillet
57

En quelques mots:

  • wget est un outil pour télécharger des fichiers depuis des serveurs
  • curl est un outil qui vous permet d'échanger des demandes / réponses avec un serveur

wget

Wget permet uniquement de télécharger des fichiers à partir d' un HTTP/ HTTPSou FTPserveur. Vous lui donnez un lien et il télécharge automatiquement le fichier vers lequel le lien pointe. Il construit automatiquement la requête.

boucle

Curl, contrairement à wget, vous permet de créer la demande à votre guise . Cela donne beaucoup de liberté à l'utilisateur et constitue un outil de débogage incroyable. Ajoutez à cela l'autre différence clé entre les deux: la pléthore de protocoles pris en charge. Supports Curl FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, Telnet, DICT, LDAP, LDAPS, IMAP, POP3, SMTP, RTSPet URI. Combinez ces deux points clés et vous disposez d'un outil extraordinaire pour tester les protocoles, tester la configuration du serveur, etc.

Comme beaucoup le disent, vous pouvez télécharger un fichier avec curl. Cela n’est toutefois utile que si vous souhaitez télécharger un fichier à partir d’un serveur utilisant un protocole non pris en charge par wget.

Pithikos
la source
2
En fait, wgetsuit également la redirection puis enregistre la réponse contrairement curl. Les deux peuvent obtenir le contraire du comportement par défaut wget -qO - http://google.co.uk/ oucurl http://google.co.uk/ > index.html
Matt
1
@mtm curl http://google.co.uk/ > index.htmln'utilise cependant pas une fonctionnalité intégrée. Quoi qu’il en soit, la principale distinction est le but pour lequel chaque outil a été conçu. Il est indéniable que les outils évoluent et qu’ils s'écartent souvent de leur trajectoire initiale.
Pithikos
1
@mtm curl http://google.co.uk -o index.htmlutiliserait les éléments internes de curl au lieu de la redirection de sortie du shell avec >.
Petrus Repo
19

En réalité, la principale différence réside dans l’ curlinclusion d’une bibliothèque ( libcurl) et cette bibliothèque est largement utilisée par d’autres applications. wgetest autonome.

sendmoreinfo
la source