10 jeux amusants à jouer dans le terminal Linux
Agence web » Actualités du digital » cURL vs wget sous Linux : quelle est la différence ?

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

Si vous demandez à un groupe d’utilisateurs de Linux avec quoi ils téléchargent 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 connectivité

Dès les années 1960, les chercheurs du gouvernement ont commencé à connecter différents réseaux entre eux, ce qui a donné lieu à Inter-lié rapporterœuvres. 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. Il a permis à des ordinateurs et des réseaux disparates de communiquer en utilisant une norme commune.

En 1991, le CERN a lancé son logiciel World Wide Web qu’il utilisait en interne depuis quelques années. L’intérêt pour cette superposition visuelle pour Internet a été immédiat et généralisé. À la fin de 1994, il y avait 10 000 serveurs Web et 10 millions d’utilisateurs.

Ces deux jalons, Internet et le Web, représentent des visages très différents de la connectivité. Mais ils partagent également une grande partie des mêmes fonctionnalités.

La connectivité signifie exactement cela. Vous vous connectez à un périphérique distant, tel qu’un serveur. Et vous vous y connectez parce qu’il y a quelque chose dont vous avez besoin ou que vous voulez. Mais comment récupérer cette ressource hébergée à distance sur votre ordinateur local, à partir de la ligne de commande Linux ?

En 1996, deux utilitaires sont nés qui permettent de télécharger des ressources hébergées à distance. Elles sont wgetsorti en janvier, et cURL qui est sorti en décembre. Ils fonctionnent tous les deux sur la ligne de commande Linux. Ils se connectent tous les deux à des serveurs distants et récupèrent tous les deux des éléments 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écialités 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 effectue votre chirurgie de pontage cardiaque, ni que le chirurgien cardiaque effectue votre opération de la cataracte. Oui, ce sont tous les deux des professionnels de la santé hautement qualifiés, mais cela ne signifie pas qu’ils se remplacent l’un l’autre.

Il en est de même pour wget et cURL.

Différents objectifs, différentes fonctionnalités, certains chevauchements

Le « w » dans le wget commande est un indicateur de sa destination. Son objectif principal est de télécharger des pages Web, voire des sites Web entiers. Son man décrit comme un utilitaire pour télécharger des fichiers depuis le Web en utilisant les protocoles HTTP, HTTPS et FTP.

Par contre, cURL fonctionne avec 26 protocoles, dont SCP, SFTP et SMSB ainsi que HTTPS. Son man la page indique qu’il s’agit d’un outil de transfert de données vers ou depuis un serveur. Il n’est pas conçu pour fonctionner avec des sites Web, en particulier. Il est destiné à interagir avec des serveurs distants, en utilisant l’un des nombreux protocoles Internet qu’il prend en charge.

Alors, wget est principalement centré sur le site Web, tandis que cURL est quelque chose qui opère à un niveau plus profond, jusqu’au niveau Internet ordinaire.

wget est capable de récupérer des pages Web et de 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 est également capable d’ajuster les liens dans les pages récupérées afin qu’ils pointent correctement vers les pages Web sur votre ordinateur local, et non vers leurs homologues sur le serveur Web distant.

cURL vous permet d’interagir avec le serveur distant. Il peut télécharger des fichiers ainsi que les récupérer. cURL fonctionne avec les proxys SOCKS4 et SOCKS5, et HTTPS vers le proxy. 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 eux est que wget et cURL les deux vous permettent de récupérer des pages Web et d’utiliser des serveurs FTP.

Il ne s’agit que d’une métrique approximative, mais vous pouvez avoir une idée des ensembles de fonctionnalités relatives des deux outils en examinant la longueur de leur man pages. Sur notre machine de test, la page de manuel de wget fait 1433 lignes. La man page pour cURL est un énorme 5296 lignes.

Un aperçu rapide de wget

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

Utilisez simplement le wget 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

Télécharger un document Word avec wget

Le fichier est récupéré et enregistré sur votre ordinateur avec son nom d’origine.

Sortie de la commande wget téléchargeant un document Word

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

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

Télécharger un fichier avec wget et l'enregistrer sous un nouveau nom

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

Le fichier téléchargé est renommé avec le nom fourni sur la ligne de commande

N’utilisez pas le -O option lorsque vous récupérez des sites Web. Si vous le faites, tous les fichiers récupérés sont ajoutés en un seul.

Pour récupérer un site Web entier, utilisez le -m (miroir) et l’URL de la page d’accueil du site. Vous voudrez également utiliser --page-requisites pour vous assurer que tous les fichiers de prise en charge nécessaires au rendu correct des pages Web sont également téléchargés. La --convert-links L’option ajuste les liens dans le fichier récupéré pour pointer vers les destinations correctes sur votre ordinateur local au lieu d’emplacements externes sur le site Web.

Un aperçu rapide 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

Installer cURL sur Ubuntu

Pour télécharger le même fichier que nous avons fait avec wget, et pour l’enregistrer avec le même nom, nous devons utiliser cette commande. Notez que le -o (sortie) l’option est en minuscules avec cURL.

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

Télécharger un fichier avec cURL et l'enregistrer sous un nouveau nom

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

Le fichier est téléchargé et enregistré avec le nom spécifié sur la ligne de commande

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

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

Télécharger un fichier depuis un serveur FTP avec cURL

Cela télécharge et renomme un fichier à partir d’un serveur FTP de test.

Un téléchargement réussi depuis un serveur FTP avec cURL

Il n’y a pas de meilleur

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

Une fois que vous avez compris ce wget et cURL faire, vous vous rendrez compte qu’ils ne sont pas en concurrence. Ils ne répondent pas aux mêmes exigences et n’essaient pas de fournir les mêmes fonctionnalités.

Le téléchargement de pages Web et de sites Web est l’endroit où wgetLa supériorité de réside. Si c’est ce que vous faites, utilisez wget. Pour toute autre chose, par exemple le téléchargement ou l’utilisation de l’un des nombreux autres protocoles, utilisez cURL.

★★★★★