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 wget
et 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 wget
celui qui est sorti en janvier, et cURL
qui 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 wget
et cURL
.
Objectifs différents, fonctions différentes, certains chevauchements
La lettre « w » dans wget
la commande indique son objectif. Son objectif principal est de charger des pages Web ou même des sites Web entiers. Sa man
page 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, cURL
il fonctionne avec 26 protocoles, dont SCP, SFTP et SMSB, ainsi que HTTPS. Sa man
page 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 wget
principalement orienté vers le site Web, cURL
alors qu’il fonctionne à un niveau plus profond, au niveau de l’Internet ordinaire.
wget
peut 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.
cURL
permet 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. cURL
vous permet également de télécharger plusieurs transferts en parallèle.
Le chevauchement entre les deux est que wget
les deux cURL
vous 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 man
pages. Sur notre machine de test, la page de manuel de contient wget
1433 lignes. La page man
pour cURL
est un énorme 5296 lignes.
Un aperçu rapide de wget
Comme wget
il 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 wget
la 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’ -O
option (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 -O
option 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 -m
paramètre (miroir) et l’URL de la page d’accueil du site Web. Vous pouvez également utiliser --page-requisites
pour vous assurer que tous les fichiers de support requis pour afficher correctement les pages Web sont également chargés. Ce --convert-links
paramè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
cURL
est 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 wget
et l’enregistrer avec le même nom, nous devons utiliser cette commande. Notez que l’ -o
option (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’ -u
option (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 wget
et quoi cURL
faire, 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’ wget
excellence. 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