Quelle est la différence entre wget et curl ?

What Is Difference Between Wget Vs Curl



Nous avons souvent besoin de télécharger des fichiers depuis des serveurs distants vers notre machine locale. Sur un bureau graphique, nous pouvons utiliser un navigateur GUI et cliquer sur le bouton de téléchargement. Cependant, sur un terminal, nous devons utiliser des outils développés pour le terminal. Lors du téléchargement de fichiers depuis le terminal, quatre outils apparaissent souvent : boucle , épaule , wget , et aria2 . Bien qu'axel et aria2 ne soient pas bien connus, la plupart des utilisateurs de terminaux connaissent curl et wget.

Dans ce didacticiel, nous examinerons curl et wget, comment commencer et, surtout, les différences entre eux.







Qu'est-ce que cURL ?

cURL est un utilitaire de ligne de commande gratuit et open source qui permet aux utilisateurs de transférer des données d'une machine distante à une autre avec une interaction minimale ou nulle de l'utilisateur. L'utilisation de CURL est répandue dans les appareils tels que les routeurs, les imprimantes, les téléphones, les tablettes, les lecteurs multimédias, etc.



Il prend en charge le téléchargement et le téléchargement à l'aide de protocoles tels que HTTP/HTTPS, FTP, SFTP, SCP, IMAP, LDAP/LDAPS, SMB/SMBS, TELNET, POP3, GOPHER et bien d'autres.



cURL fournit également des proxys, des transferts de reprise, une authentification des utilisateurs, des certificats SSL et bien plus encore.





Qu'est-ce que wget ?

GNU Wget, communément appelé wget, est un utilitaire de ligne de commande gratuit permettant de transférer des fichiers à l'aide de HTTP/HTTPS, FTP et FTPS. Il fournit des fonctionnalités telles que les téléchargements récursifs, le contrôle de la bande passante, la reprise des transferts interrompus, les téléchargements en arrière-plan, les fichiers et répertoires miroirs récursifs, et bien d'autres.

Comment installer cURL et Wget ?

cURL et wget sont des outils populaires facilement disponibles dans les principales distributions Linux ; si aucun des deux outils n'est installé, vous utilisez les commandes ci-dessous pour l'installer :



Debian/Ubuntu :

# installer cURL

sudo apt-get installerboucle

# installer wget

sudo apt-get installer wget

Arche / Manjaro :

# installer cURL

sudoPac-Man-Sboucle

# installer wget

sudoPac-Man-S wget

REHL/CentOS/Fedora :

# installer cURL

sudo miam installerboucle

sudodnfinstallerboucle

# installer wget

sudo miam installer wget

sudodnfinstaller wget

Comment utiliser cURL et Wget (exemples de cas d'utilisation) ?

Pour vous assurer que vous comprenez les similitudes et les différences entre cURL et wget, il est bon de regarder quelques exemples :

Protocoles HTTP/HTTPS :

cURL et wget prennent en charge les protocoles HTTP et HTTPS. Par conséquent, si nous téléchargeons un site Web tel que linuxhint.com :

boucle https ://linuxhint.com-oulinuxhint.html

boucle https ://linuxhint.com-oulinuxhint.html

%Le total%A reçu%Xferd Vitesse moyenne Temps Temps Temps Actuel

Dload Télécharger la vitesse totale dépensée à gauche

100256k0256k0 0166k0-: -: -0:00:01 --:--:-- 166k

Par défaut, cURL imprimera le contenu de la ressource Web dans le terminal. Nous utilisons l'indicateur -o pour rediriger la sortie vers un fichier.

Ce qui suit s'applique à wget :

wgethttps ://linuxhint.com

--2021-06-2005:09 :Quatre cinq- https ://linuxhint.com/

Résolution de linuxhint.com(linuxhint.com)... 104.21.58.234, 172.67.209.252,2606:4700:3033::6815:3aea, ...

Connexion à linuxhint.com(linuxhint.com)|104.21.58.234|:443... connecté.

Requête HTTP envoyée, en attente de réponse...200d'accord

Longueur : non précisée[texte/html]

Enregistrement dans : « index.html »

index.html

[ <=> ]256,25 Ko 506 Ko/sdans0.5s

2021-06-vingt05:09 :46 (506Ko/s)- 'index.html' enregistré[262396]

Wget, d'autre part, enregistre la ressource demandée dans un fichier.

Il est bon de noter que les deux outils téléchargent la ressource. Les détails ls des deux fichiers montrent les deux tailles de fichier.

$ls -lindex.html linuxhint.html

-rw-rw-r-- 1linuxhint linuxhint262396juin19 quinze:cinquanteindex.html

-rw-rw-r-- 1linuxhint linuxhint262396juinvingt05:07 linuxhint.html

Protocole FTP :

CURL et wget prennent en charge les téléchargements sur les protocoles FTP. Cependant, cURL prend en charge le téléchargement vers ftp.

Utilisez la commande ci-dessous pour télécharger des fichiers depuis le serveur FTP avec wget :

wget --utilisateur= debian--le mot de passe='debian' ftp ://192.168.0.112/backup.zst

wget --utilisateur= debian--le mot de passe='debian'ftp ://192.168.0.112/backup.zst

--2021-06-2005 :29: 06-- ftp ://192.168.0.112/backup.zst

=>'backup.zst'

Connexion à 192.168.0.112 :vingt-et-un... connecté.

Enregistrementdans commedebian ... Connectédans!

==>SYST ... fait. ==>PWD ... fait.

==>TYPE I ... fait. ==>CWD pas nécessaire.

==>SIZE backup.zst ... terminé.

==>PASV ... fait. ==>RETR backup.zst ... terminé.

backup.zst

[ <=> ] 0--.- Ko/sdans0s

2021-06-vingt05 :29: 06(0,00B/s)- 'backup.zst' enregistré[0]

En utilisant curl, ajoutez le-usignaler comme :

boucle-udebian:debian 'ftp://192.168.0.112/backup.zst'-oubackup.zst

boucle-udebian : debian'ftp://192.168.0.112/backup.zst' -oubackup.zst

%Le total%A reçu%Xferd Vitesse moyenne Temps Temps Temps Actuel

Dload Télécharger la vitesse totale dépensée à gauche

0 0 0 0 0 0 0 0- : - : - - : - : - - : - : -0

Pour télécharger undéposeràftpavec curl, nous utilisons le-Toption comme :

boucle-udebian : debian-Tftp backup1.zst ://192.168.0.112/ftp/

Assurez-vous que le répertoire existe et que l'utilisateur dispose des autorisations d'écriture sur celui-ci.

REMARQUE: Bien que cURL prenne en charge une grande variété de protocoles, il ne fournit pas de téléchargements récursifs. D'autre part, Wget prend en charge les téléchargements récursifs à l'aide de l'option –recursive car les protocoles HTTP/HTTPS et FTP/FTPS offrent une telle fonctionnalité.

Similitudes entre wget et cURL

Maintenant pour la cerise sur le gâteau :

  • Les deux outils prennent en charge les protocoles standard tels que HTTP, HTTPS, FTP, FTPS.
  • Les deux outils téléchargent des fichiers sur Internet.
  • Les deux outils prennent en charge les cookies HTTP.
  • Les deux outils prennent en charge la sortie dans un fichier.
  • Des outils à la fois gratuits et activement développés.
  • Les deux outils prennent en charge les transferts de reprise.
  • Les deux outils prennent en charge HTTP POST.

Différences entre wget et cURL

Voici quelques-unes des différences entre curl et wget :

  • Wget est un simple utilitaire de transfert, tandis que curl offre bien plus.
  • Curl fournit la bibliothèque libcurl, qui peut être étendue aux applications GUI. Wget, en revanche, est un simple utilitaire de ligne de commande.
  • Wget prend en charge moins de protocoles que cURL.
  • Les téléchargements récursifs ne sont pas pris en charge dans curl.
  • Wget est nativement disponible dans les systèmes Linux, tandis que cURL est facilement disponible dans les systèmes Windows.
  • cURL prend en charge plusieurs transferts parallèles.
  • cURL effectue des décompressions HTTP encodées par transfert, contrairement à wget.
  • cURL prend en charge le HTTP bidirectionnel tandis que wget propose un simple HTTP POST.
  • cURL prend en charge plus de méthodes d'authentification HTTP que wget.
  • Wget ne prend pas en charge SOCKS.
  • Wget nécessite l'installation de gnulib.
  • Contrairement à curl, les fonctionnalités telles que les cookies, les horodatages et les redirections de suivi sont activées par défaut dans wget. cURL requiert que chacun soit spécifié explicitement.

Conclusion

Ce tutoriel s'est concentré sur les similitudes et les différences entre cURL. Bien qu'il puisse sembler que cURL soit le meilleur choix, il existe des cas où wget est le meilleur choix.

Mon conseil est de choisir ce qui fonctionne pour vous.