cURL et wget sous Linux : quelle est la différence ?

cURL et wget sous Linux : quelle est la différence ?

Si vous demandez à un groupe d’utilisateurs Linux ce qu’ils utilisent pour télécharger des fichiers, certains diront wgetet d’autres diront cURL. Quelle est la différence et l’un est-il meilleur que l’autre ?

Tout a commencé avec la connexion

Les chercheurs du gouvernement ont commencé à connecter divers réseaux entre eux dès les années 1960, ce qui a donné lieu à des réseaux interconnectés. Mais la naissance d’Internet tel que nous le connaissons a eu lieu le 1er janvier 1983, lorsque le protocole TCP/IP a été mis en place. C’était le chaînon manquant. Cela a permis à des ordinateurs et des réseaux disparates de communiquer en utilisant une norme commune.

En 1991,  le CERN a  publié son logiciel pour le World Wide Web, qu’il a utilisé en interne pendant plusieurs années. L’intérêt pour cette superposition visuelle pour le Web a été immédiat et généralisé. Fin 1994, il y avait  10 000 serveurs Web et 10 millions d’utilisateurs .

Ces deux jalons – l’Internet et le World Wide Web – représentent des facettes très différentes de la connectivité. Mais ils partagent également bon nombre des mêmes caractéristiques.

La communication signifie exactement cela. Vous vous connectez à un périphérique distant, tel qu’un serveur. Et vous vous y connectez parce qu’il contient quelque chose dont vous avez besoin ou que vous voulez. Mais comment obtenir cette ressource hébergée à distance sur la machine locale à partir de la ligne de commande Linux ?

En 1996, deux utilitaires sont apparus qui vous permettaient de télécharger des ressources hébergées à distance. C’est wgetcelui qui est sorti en janvier, et cURLqui est sorti en décembre. Les deux fonctionnent sur la ligne de commande Linux. Ils se connectent tous les deux à des serveurs distants et récupèrent les données pour vous.

Mais ce n’est pas seulement le cas habituel où Linux fournit deux outils ou plus pour faire le même travail. Ces utilitaires ont des objectifs différents et des spécialisations différentes. Le problème est qu’ils sont suffisamment similaires pour semer la confusion quant à savoir lequel utiliser et quand.

Prenons deux chirurgiens. Vous ne voulez probablement pas qu’un chirurgien ophtalmologiste pratique un pontage cardiaque sur vous, ni qu’un chirurgien cardiaque pratique une opération de la cataracte sur vous. Oui, ce sont tous deux des professionnels de la santé hautement qualifiés, mais cela ne signifie pas qu’ils peuvent se remplacer.

Il en est de même pour wgetet cURL.

Objectifs différents, fonctions différentes, certains chevauchements

La lettre « w » dans wgetla commande indique son objectif. Son objectif principal est de charger des pages Web ou même des sites Web entiers. Sa manpage le décrit comme un utilitaire permettant de télécharger des fichiers depuis Internet en utilisant les protocoles HTTP, HTTPS et FTP.

Au contraire, cURLil fonctionne avec 26 protocoles, dont SCP, SFTP et SMSB, ainsi que HTTPS. Sa manpage dit que c’est un outil pour transférer des données vers ou depuis un serveur. Il n’est pas spécifiquement conçu pour fonctionner avec des sites Web. Il est conçu pour communiquer avec des serveurs distants à l’aide de l’un des nombreux protocoles Internet pris en charge.

Il est donc wgetprincipalement orienté vers le site Web, cURLalors qu’il fonctionne à un niveau plus profond, au niveau de l’Internet ordinaire.

wgetpeut récupérer des pages Web et peut naviguer de manière récursive dans des structures de répertoires entières sur des serveurs Web pour télécharger des sites Web entiers. Il peut également définir les liens sur les pages récupérées pour pointer correctement vers des pages Web sur votre ordinateur local, plutôt que vers leurs homologues sur un serveur Web distant.

cURLpermet d’interagir avec un serveur distant. Il peut télécharger des fichiers ainsi que les extraire. cURL fonctionne avec les proxys SOCKS4 et SOCKS5, et HTTPS vers les proxys. Il prend en charge la décompression automatique des fichiers compressés aux formats GZIP, BROTLI et ZSTD. cURLvous permet également de télécharger plusieurs transferts en parallèle.

Le chevauchement entre les deux est que wgetles deux cURLvous permettent d’obtenir des pages Web et d’utiliser des serveurs FTP.

Il ne s’agit que d’une mesure approximative, mais vous pouvez vous faire une idée des ensembles de fonctionnalités relatives des deux outils en examinant la longueur de leurs manpages. Sur notre machine de test, la page de manuel de contient wget1433 lignes. La page manpour cURLest un énorme 5296 lignes.

Un aperçu rapide de wget

Comme wgetil fait partie du projet GNU , vous devriez le trouver préinstallé sur toutes les distributions Linux. Il est simple d’utilisation, notamment pour les usages les plus courants : téléchargement de pages web ou de fichiers.

Utilisez simplement wgetla commande avec l’URL de la page Web ou du fichier distant.

wget https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc

Le fichier est extrait et enregistré sur votre ordinateur avec le nom d’origine.

Pour enregistrer le fichier sous un nouveau nom, utilisez l’ -Ooption (document de sortie).

wget -O word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc

Le fichier résultant est enregistré avec le nom que nous avons choisi.

N’utilisez pas cette -Ooption lors de la recherche de sites Web. Si vous faites cela, tous les fichiers extraits seront ajoutés à un seul.

Pour obtenir le site Web entier, utilisez le -mparamètre (miroir) et l’URL de la page d’accueil du site Web. Vous pouvez également utiliser --page-requisitespour vous assurer que tous les fichiers de support requis pour afficher correctement les pages Web sont également chargés. Ce --convert-linksparamètre configure les liens dans le fichier résultant pour pointer vers les destinations correctes sur votre ordinateur local, plutôt que vers des emplacements externes sur le site Web.

Un aperçu de cURL

cURLest un projet open source indépendant. Il est pré-installé sur Manjaro 21 et Fedora 36 mais devait être installé sur Ubuntu 21.04.

C’est la commande pour installer cURL sur Ubuntu.

sudo apt install curl

Pour charger le même fichier qu’avec wgetet l’enregistrer avec le même nom, nous devons utiliser cette commande. Notez que l’ -ooption (exit) est écrite en minuscules avec cURL.

curl -o word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc

Le fichier a été téléchargé pour nous. Une barre de progression ASCII s’affiche pendant le téléchargement.

Pour vous connecter à un serveur FTP et télécharger un fichier, utilisez l’ -uoption (utilisateur) et spécifiez une paire nom d’utilisateur/mot de passe, comme ceci :

curl -o test.png -u demo:password ftp://test.rebex.net/pub/example/KeyGenerator.png

Cela télécharge et renomme le fichier à partir du serveur FTP de test.

Il n’y a pas mieux

Il est impossible de répondre « Lequel dois-je utiliser » sans demander « Qu’essayez-vous de faire ? »

Une fois que vous aurez compris quoi wgetet quoi cURLfaire, vous comprendrez qu’ils ne sont pas en concurrence. Ils ne répondent pas aux mêmes exigences et ne tentent pas de fournir les mêmes fonctionnalités.

Le chargement des pages Web et des sites Web est l’ wgetexcellence. Si c’est ce que vous faites, utilisez wget. Pour tout le reste, comme le téléchargement ou l’utilisation de l’un des nombreux autres protocoles, utilisez cURL.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *