Qu’est-ce que la commande cURL ? Comprendre la syntaxe, les options et les exemples

La commande curl (client URL) est un outil en ligne de commande permettant de transférer des données vers ou depuis un serveur. Dans sa forme la plus simple, vous spécifiez une URL et les données à envoyer ou à recevoir. Elle prend en charge de nombreux protocoles, notamment HTTP, HTTPS et FTP, et fonctionne sur la plupart des systèmes d’exploitation.
La commande cURL sous Linux permet à votre système d’échanger des données avec des serveurs via Internet. Cet outil est essentiel pour diverses tâches, notamment le téléchargement de fichiers et la vérification du fonctionnement des API.
Dans ce tutoriel, nous vous expliquerons la commande cURL, y compris son installation et sa syntaxe. Vous découvrirez également plusieurs exemples d’utilisation pratique de la commande cURL.
Sommaire
Qu’est-ce que la commande cURL ?
La commande cURL (client URL) est un outil puissant utilisé pour transférer des données vers et depuis des serveurs. Elle fonctionne via l’interface de ligne de commande (CLI) et prend en charge divers protocoles tels que HTTP, HTTPS, FTP et SMTP. Cette flexibilité la rend très efficace pour des tâches telles que le test d’API, le téléchargement de fichiers et l’interaction directe avec des serveurs web.
Bien que des alternatives telles que Postman offrent une interface utilisateur graphique (GUI) pour ces tâches, cURL reste l’outil préféré des développeurs en raison de sa simplicité, de sa rapidité et de sa compatibilité avec un large éventail de protocoles. Pour ceux qui utilisent régulièrement les commandes Linux, cURL est un outil indispensable.
Installation de cURL
La commande cURL devrait être préinstallée par défaut sur la plupart des systèmes d’exploitation Linux. Pour vérifier si elle est configurée, ouvrez le terminal ou connectez-vous via SSH si vous utilisez une plateforme de serveur privé virtuel (VPS) à distance.
Pour les utilisateurs de VPS Hostinger, vous pouvez également vous connecter à votre système en un seul clic à l’aide du terminal du navigateur. Il vous suffit d’ouvrir votre page de gestion VPS sur hPanel et de cliquer sur le bouton en haut à droite.

Après avoir accédé à l’interface CLI de votre système, exécutez la commande suivante pour vérifier si cURL est installé :
curl --version
Si votre système dispose de cURL, l’interface CLI affichera le numéro de version installée. Sinon, vous obtiendrez l’erreur Command not found.

Pour l’installer, exécutez les commandes suivantes successivement. N’oubliez pas de remplacer apt par le gestionnaire de paquets approprié en fonction de votre système d’exploitation Linux :
sudo apt update && sudo apt upgrade
sudo apt install curl
Syntaxe de base et options de la commande cURL
La syntaxe de base de la commande cURL est la suivante :
curl [options] [URL]
Voici le détail de la syntaxe :
- cURL – le nom de la commande qui indique à votre système que vous exécutez cURL.
- Options : indicateurs supplémentaires modifiant le comportement de la commande cURL.
- URL – l’adresse du serveur ou du point de terminaison de destination.
Comme il existe différentes options, consultez la documentation cURL pour obtenir la liste complète. Parmi celles-ci, voici quelques-unes des plus utilisées :
- –help – affiche le manuel et les options de la commande cURL.
- -O – télécharge le fichier d’origine à partir de l’URL indiquée.
- -L – suit les URL de redirection.
- -I – récupère uniquement l’en-tête.
- -d – soumet les données du formulaire.
- -F – téléverse des données ou des fichiers complexes.
- -X – spécifie la méthode de transfert des données.
Important ! Les commandes Linux sont sensibles à la casse. Veillez à utiliser les options avec la bonne casse pour éviter les erreurs.
La commande cURL vous permet d’envoyer ou de récupérer des données à partir d’un point de terminaison à l’aide de différentes méthodes HTTP :
- GET – la méthode par défaut qui récupère les données du serveur.
- POST – envoie des données au point de terminaison.
- PUT – crée une ressource sur le point de terminaison ou met à jour une ressource existante.
- DELETE : supprime les données du point de terminaison.
Exemples de commandes cURL
Dans cette section, nous allons explorer plusieurs exemples concrets de la commande cURL pour diverses tâches.
Obtenir une page web
L’utilisation la plus basique de la commande cURL consiste à récupérer le contenu HTML d’une page web. Pour ce faire, il suffit d’exécuter cURL avec le point de terminaison de destination comme suit :
curl https://www.google.com
La commande cURL affichera le code HTML de la page web en tant que sortie standard dans votre CLI.

Vous pouvez également envoyer des requêtes HTTP à plusieurs URL à l’aide d’une seule commande, comme ceci :
curl https://www.exemple1.com https://exemple2.com
Enregistrer la sortie dans un fichier
Vous pouvez enregistrer la sortie de la commande cURL dans un fichier en y ajoutant une opération de redirection (>). Cela est utile si vous souhaitez stocker le résultat à des fins de surveillance ou d’archivage.
Par exemple, la commande suivante enregistrera le contenu HTML de Google dans fichier1.txt :
curl https://www.google.com > fichier1.txt
La commande créera automatiquement le fichier si vous n’en avez pas. Si fichier1.txt existe déjà, cURL écrasera le fichier existant.
Télécharger un fichier avec son nom d’origine
L’une des utilisations les plus courantes de cURL est le téléchargement d’un fichier distant depuis Internet, comme avec wget. Pour ce faire, utilisez l’option -O comme suit :
curl -O http://www.exemple.com/chemin/fichier.zip
La commande téléchargera le fichier spécifié appelé fichier.zip dans votre répertoire de travail actuel. Sans l’option -O, cURL affichera le contenu du fichier sous forme de sortie standard sur votre CLI.
Suivre les redirections
Si une URL redirige vers une autre page, cURL ne la suivra pas et renverra le statut 301 ou 302. Par exemple, vérifions googlr.com :
curl http://www.googlr.com
Comme cette URL redirige vers google.com, cURL ne peut pas la suivre et renvoie le statut 301 indiquant que le document a été déplacé.

Pour suivre automatiquement la redirection et afficher le contenu de google.com, ajoutez l’option -L ou –location comme suit :
curl -L http://www.googlr.com
Si l’URL redirige plusieurs fois, vous pouvez limiter le nombre de fois que cURL la suivra à l’aide de l’option –max-redirs comme suit :
curl -L --max-redirs 3 http://www.googlr.com
Récupérer uniquement les en-têtes
Dans certains cas, il est plus utile de récupérer l’en-tête de réponse du point de terminaison que l’intégralité du contenu. Cela réduit la sortie pour une analyse plus simple et minimise la consommation de bande passante.
Les informations contenues dans les en-têtes de réponse sont généralement suffisantes à des fins de test. Elles contiennent par exemple le statut de la réponse HTTP, les appels API restants et les redirections.
Pour récupérer uniquement les en-têtes à l’aide de cURL, ajoutez l’option -I (i majuscule) ou –head comme suit :
curl -I http://www.google.com
Requêtes authentifiées
Lorsque vous envoyez une requête à un point de terminaison sécurisé tel qu’une API interne, vous devez généralement l’authentifier en incluant les Identifiants dans votre commande cURL.
Cependant, la commande et l’option diffèrent selon la méthode d’authentification. Par exemple, exécutez la commande suivante si vous utilisez un nom d’utilisateur et un mot de passe classiques :
curl -u username:password <URL>
Vous pouvez également omettre :password et le saisir séparément plus tard afin d’éviter que les identifiants n’apparaissent dans l’historique bash.
Si vous utilisez le jeton Bearer, utilisez la syntaxe de commande suivante :
curl -H "Authorization: Bearer <token>" <URL>
La commande est similaire si vous utilisez une clé API dans l’en-tête pour l’authentification :
curl -H "Authorization: ApiKey <API key>" <URL>
Si votre API nécessite spécifiquement la clé d’autorisation directement dans l’URL, vous pouvez l’ajouter à l’aide de la commande suivante :
curl "https://api.exemple.com/data?api_key=api_key"
Soumettre des données de formulaire
cURL vous permet de soumettre facilement des données à des formulaires sur un point de terminaison. Cela est utile si vous souhaitez automatiser le processus à l’aide d’un script bash ou si vous ne souhaitez pas interagir avec l’interface web de la destination.
La soumission de formulaire à l’aide de cURL nécessite que vous spécifiiez la paire clé-valeur. La clé fait référence au nom du formulaire, tandis que la valeur indique les données que vous souhaitez insérer. La syntaxe se présente comme suit :
key1=value1&key2=value2
Vous avez besoin de deux options, -X pour spécifier la méthode de soumission et -d pour indiquer à cURL que vous souhaitez insérer des données. La commande complète peut ressembler à ceci :
curl -X POST -d "username=johndoe&password=secret" https://exemple.com/login
Dans cet exemple, cURL utilise la requête POST pour saisir les Identifiants dans le formulaire de la page de connexion.
Lorsque vous soumettez les données du formulaire, assurez-vous qu’elles respectent le format de nommage des URL. Par exemple, remplacez un espace par %20 et une esperluette (&) par %26.
Vous pouvez également insérer des données à partir d’un fichier en utilisant la syntaxe suivante. Assurez-vous que le fichier contient les données dans le format de paire clé-valeur approprié.
curl -X POST -d @data.txt https://exemple.com/login
Téléverser un fichier
Si vous souhaitez envoyer un fichier local ou des données plus complexes à un point de terminaison, utilisez l’option -F. Ce flag suppose également que vous utilisez la méthode POST par défaut, vous n’avez donc pas besoin de la spécifier manuellement avec -X.
Par exemple, la commande suivante envoie un fichier texte au point de terminaison :
curl -F "fichier=@test.txt" https://exemple.com/upload
Si vous souhaitez envoyer plusieurs fichiers, il vous suffit de les lister dans votre commande, en commençant chacun par l’option -F, comme ceci :
curl -F "fichier=@/chemin/vers/image.jpg" -F "fichier=@/chemin/vers/image2.jpg" https://exemple.com/upload
Vous pouvez également téléverser des fichiers à l’aide de cURL via le protocole de transfert de fichiers (FTP). La différence est que vous utilisez l’option -T comme suit :
curl -T /chemin/vers/fichier ftp://ftp.exemple.com/chemin/distant/
Pour un protocole de transfert de fichiers sécurisé (SFTP) ou un serveur FTP protégé, ajoutez les identifiants d’authentification avant l’option -T comme suit :
curl -u username:password -T /chemin/vers/fichier sftp://sftp.exemple.com/chemin/distant/
Définir des en-têtes personnalisés
L’utilisation d’en-têtes de requête personnalisés vous permet d’interagir avec le serveur web ou l’API d’une manière spécifique. Cela vous permet d’ajouter des métadonnées spécifiques pour une réponse personnalisée, ce qui est utile lors du test des fonctionnalités du point de terminaison.
Vous pouvez définir un en-tête personnalisé avec l’option -H en utilisant cette syntaxe :
curl -H "Header: value" <URL>
Par exemple, vous pouvez spécifier le type de contenu que vous souhaitez envoyer dans l’en-tête. Voici la commande :
curl -X POST -H "Content-Type: application/json" -d '{"form":"JSONdata"}' https://api.exemple.com/
Vous pouvez également définir un en-tête personnalisé pour définir le type de contenu que vous acceptez en réponse. Par exemple, si vous souhaitez que le point de terminaison réponde avec JSON, utilisez la commande suivante :
curl -H "Accept: application/json" https://api.exemple.com/data
Lorsque vous testez l’API, vous pouvez définir un en-tête personnalisé pour spécifier la version à utiliser. La commande ressemble à ceci :
curl -H "X-API-Version: 2" https://api.exemple.com/v2/data
Utiliser différents protocoles
Selon le point de terminaison, vous devrez peut-être utiliser différents protocoles avec cURL. Par exemple, vous pouvez utiliser SFTP pour transférer des fichiers, tandis que le test d’un serveur de messagerie nécessite SMTP.
Pour exécuter cURL à l’aide de différents protocoles, il suffit de le spécifier au début de l’URL de votre point de terminaison avant ://. Par exemple, cette commande transférera les données à l’aide de SMTP :
curl --url smtp://smtp.exemple.com --mail-from "utilsateur@exemple.com" --mail-rcpt "destinataire@exemple.com" -T email.txt
La commande enverra un message de utilsateur@exemple.com à destinataire@exemple.com via le serveur de messagerie smtp.exemple.com en utilisant le protocole SMTP.
Conclusion
La commande cURL sous Linux permet à votre système de se connecter à un serveur et de transférer des données. Elle est connue pour sa compatibilité avec divers protocoles et sa capacité à inclure des informations supplémentaires, comme un en-tête personnalisé.
Bien que cURL soit préinstallé dans la plupart des distributions Linux, vous pouvez le configurer manuellement à l’aide de votre gestionnaire de paquets. Cette commande sert essentiellement à récupérer le contenu d’une page web ou une réponse API.
Vous pouvez également télécharger des fichiers à l’aide de cURL avec l’option -O ou téléverser des éléments en ajoutant le flag -F. De plus, utilisez -H pour spécifier un en-tête de requête personnalisé à des fins diverses, notamment pour ajouter un jeton d’authentification et spécifier la version de l’API.
Pour envoyer des données de formulaire à l’aide de cURL, utilisez l’option -d. Parallèlement, ajoutez le flag -F pour téléverser des ressources plus complexes telles que des fichiers.
Commande cURL – FAQ
À quoi sert la commande cURL sous Linux ?
Sous Linux, la commande cURL vous permet de vous connecter à un serveur distant et de transférer des données. Elle est utile pour diverses tâches, notamment le téléchargement d’un fichier à partir d’un site internet et l’envoi de requêtes à une API à des fins de test.
Quels protocoles cURL prend-il en charge ?
cURL prend en charge divers protocoles de transfert de données, notamment HTTP, HTTPS, FTP et SMTP. Pour utiliser un protocole particulier, il suffit de l’insérer au début de l’URL avant la partie ://. Par exemple, ajoutez le point de terminaison ftp://www.exemple.com si vous souhaitez utiliser FTP.
Comment vérifier si cURL est installé sur mon système ?
Pour vérifier si cURL est installé sur votre système, exécutez la commande curl –version. Si votre CLI renvoie un numéro de version, cURL est installé. Sinon, elle affichera l’erreur Command not found.
Commentaires
March 30 2021
bonjour j'utilise CURL depuis longtemps mais là j'ai un soucis je dois récupérer des fichiers sur un site https et je n'en connais pas le nom exact. je sais simplement qu'ils sont sous la forme "SGN.xxxxxx". où x est l'inconnu. Et je n'y arrive pas. pouvez-vous m'aider svp ? merci d'avance Cdt Patrick VOISIN
January 09 2023
Bonjour et merci pour votre commentaire ! Malheureusement il n'y a pas beaucoup d'aide que nous pouvons fournir si vous ne connaissez pas le nom du site pour lequel vous voulez retirer les fichiers. Vous pouvez contacter le service d'assistance sur fr@hostinger.com si le site est hébergé sur leur plan d'hébergement, mais s'il est hébergé ailleurs, nous ne pourrons pas faire grand-chose.