Ressources pour développeur web

Théme de la semaine : Git

Maîtriser cURL depuis le terminal : Tutoriel complet

Temps de lecture estimé : 12 minutes
Accueil Terminal Maîtriser cURL depuis le terminal : Tutoriel complet

Si vous avez déjà vu passer une commande cURL dans un terminal sans vraiment comprendre à quoi elle servait, vous êtes au bon endroit. Derrière cet outil très utilisé par les développeurs se cache une manière simple et rapide de communiquer avec un site web, une API ou un serveur directement depuis la ligne de commande.

  • Ce qu’il se passe entre votre terminal et un serveur web grâce à des exemples simples et concrets.
  • Gagner du temps en utilisant cURL pour tester des API, télécharger des fichiers ou automatiser certaines tâches répétitives.
  • Éviter les erreurs avec les requêtes HTTP et apprendre à utiliser les bonnes commandes dès le départ.

Quand on débute dans le monde du développement web ou de l’administration système, le terminal peut rapidement faire peur. Pourtant, certains outils deviennent vite indispensables… et cURL en fait clairement partie.

Derrière ce petit nom un peu étrange se cache un programme extrêmement puissant capable de communiquer avec des sites web, des serveurs ou des API directement depuis une ligne de commande. Oui, sans navigateur. Et même si cela peut sembler réservé aux développeurs chevronnés, rassurez-vous : cURL est beaucoup plus accessible qu’il n’y paraît.

Dans ce tutoriel, vous allez apprendre à utiliser cURL depuis le terminal étape par étape. Vous découvrirez comment télécharger des fichiers, envoyer des données, tester des API, comprendre les réponses HTTP et automatiser certaines tâches. Le tout avec des exemples simples, concrets et adaptés aux débutants.

À la fin de cet article, vous serez capable de lancer vos propres requêtes comme un vrai développeur web.

Qu’est-ce que cURL ?

cURL est un outil en ligne de commande permettant d’échanger des données avec un serveur.

En pratique, cela signifie qu’il peut :

  • récupérer le contenu d’une page web ;
  • télécharger des fichiers ;
  • envoyer des données à une API ;
  • tester un serveur ;
  • simuler un formulaire ;
  • automatiser des requêtes réseau.

Le nom cURL vient de “Client URL”. Son objectif est donc simple : communiquer avec des URL depuis le terminal.

Par exemple, lorsque vous ouvrez un site dans votre navigateur, celui-ci envoie une requête HTTP au serveur. cURL fait exactement la même chose… mais sans interface graphique.

cURL depuis le terminal

Et c’est justement ce qui le rend si puissant.

Installer cURL sur votre ordinateur

  • Sur Linux et macOS, cURL est souvent déjà installé.

Pour vérifier si cURL est installé, ouvrez votre terminal puis tapez :

curl --version

Si tout fonctionne, vous verrez apparaître plusieurs informations :

curl 8.5.0
Protocols: http https ftp
Features: SSL IPv6

Cela signifie que cURL est prêt à être utilisé.

Installer cURL sous Windows

Depuis Windows 10 et Windows 11, cURL est normalement intégré par défaut.

Vous pouvez vérifier cela dans PowerShell :

curl --version

Si la commande n’existe pas, vous pouvez télécharger cURL depuis le site officiel de cURL.

Installer cURL sous Linux

Sous Ubuntu ou Debian :

sudo apt update
sudo apt install curl

Sous Fedora :

sudo dnf install curl

Installer cURL sur macOS

Sur macOS, cURL est déjà présent dans le système. Aucun téléchargement n’est normalement nécessaire.

Comprendre le fonctionnement d’une requête HTTP

Avant d’utiliser cURL sérieusement, il est important de comprendre ce qui se passe “dans les coulisses”.

Quand vous tapez une URL dans votre navigateur :

  1. une requête est envoyée au serveur ;
  2. le serveur répond ;
  3. votre navigateur affiche le contenu.
Requête HTTP
  • cURL fait exactement cela, mais directement dans le terminal.

Les méthodes HTTP principales

Voici les méthodes les plus utilisées :

MéthodeUtilité
GETrécupérer des données
POSTenvoyer des données
PUTmodifier des données
DELETEsupprimer des données

Dans la majorité des cas, vous commencerez avec des requêtes GET.

👉 Tout savoir sur : Les code de réponse HTTP.

Première requête avec cURL

Commençons simplement.

Tapez cette commande :

curl https://example.com

Immédiatement, le contenu HTML de la page apparaît dans le terminal.

  • Vous venez d’effectuer votre première requête HTTP avec cURL.

Ce n’est pas très joli à lire. Mais techniquement, cela fonctionne parfaitement.

Afficher uniquement les en-têtes HTTP

Parfois, vous ne souhaitez pas récupérer toute la page, mais uniquement les informations envoyées par le serveur.

Utilisez alors l’option -I :

curl -I https://example.com

Vous verrez quelque chose comme :

HTTP/2 200
content-type: text/html
server: nginx

Ces informations sont appelées les “headers HTTP”. Le fameux 200 signifie que tout fonctionne correctement.

👉 Pour aller plus loin : Sécuriser les Header HTTP en PHP

Comprendre les codes HTTP

Voici quelques codes très fréquents :

CodeSignification
200succès
301redirection
403accès interdit
404page introuvable
500erreur serveur

Quand un site affiche une erreur 404, c’est exactement ce type de réponse que le serveur renvoie.

Télécharger un fichier avec cURL

L’un des usages les plus pratiques de cURL consiste à télécharger des fichiers :

curl -O https://example.com/fichier.zip

L’option -O demande à cURL d’enregistrer le fichier avec son nom d’origine. Le téléchargement commence immédiatement.

Vous pouvez également enregistrer un fichier sous un autre nom :

curl -o sauvegarde.zip https://example.com/fichier.zip

Cette fois, le fichier sera enregistré sous le nom sauvegarde.zip.

Télécharger plusieurs fichiers automatiquement

cURL permet aussi d’automatiser des téléchargements.

curl -O https://example.com/image1.jpg
curl -O https://example.com/image2.jpg
curl -O https://example.com/image3.jpg

Mais il existe mieux :

curl -O https://example.com/image[1-3].jpg

Très pratique pour gagner du temps.

Reprendre un téléchargement interrompu

Votre connexion internet décide soudainement de partir en vacances ? Pas de panique.

curl -C - -O https://example.com/grosfichier.zip

cURL reprend le téléchargement là où il s’était arrêté. Pratique !

Suivre automatiquement les redirections

Certains sites redirigent vers une autre URL. Par défaut, cURL ne suit pas automatiquement ces redirections.

Pour corriger cela :

curl -L https://example.com

L’option -L est très utilisée dans les scripts.

Envoyer des données avec cURL

Maintenant que vous savez récupérer des données, voyons comment en envoyer.

Faire une requête POST :

curl -X POST https://example.com/api

L’option -X permet de préciser la méthode HTTP.

Ici, nous utilisons POST.

Envoyer des données simples

curl -X POST -d "nom=Jean" https://example.com/api

Le -d signifie “data” : Vous envoyez ici une donnée appelée nom.

Envoyer du JSON avec cURL

Les API modernes utilisent souvent le format JSON. Voici un exemple :

curl -X POST https://example.com/api \
-H "Content-Type: application/json" \
-d '{"nom":"Jean","age":30}'

Décortiquons cela tranquillement.

L’option -H ajoute un en-tête HTTP :

-H "Content-Type: application/json"

Cela indique au serveur que vous envoyez du JSON.

Les données JSON

{
  "nom":"Jean",
  "age":30
}

Ce format est très utilisé dans les API REST.

👉 Pour ceux qui débutent : Le format JSON

Tester une API avec cURL

cURL est extrêmement pratique pour tester des API sans installer d’outil graphique.

Prenons une API publique :

curl https://jsonplaceholder.typicode.com/posts/1

Réponse :

{
  "userId": 1,
  "id": 1,
  "title": "mon titre",
  "body": "contenu"
}

Vous venez d’interroger une API REST directement depuis le terminal. Et honnêtement… ça commence à devenir assez satisfaisant.

Ajouter des paramètres dans l’URL

Certaines API utilisent des paramètres :

curl "https://example.com/recherche?q=chat"

Le ?q=chat représente une variable transmise au serveur.

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?

Utiliser une authentification

Certaines API nécessitent une connexion.

Par exemple avec une authentification Basic Auth :

curl -u utilisateur:motdepasse https://example.com/api

cURL se charge automatiquement de l’authentification.

Authentification avec token Bearer

Très fréquent dans les API modernes :

curl -H "Authorization: Bearer MON_TOKEN" \
https://example.com/api

Le token agit comme une clé d’accès.

Afficher plus de détails avec le mode verbose (verbeux)

Quand une requête ne fonctionne pas, le mode verbose devient votre meilleur ami.

curl -v https://example.com

Vous verrez :

  • les en-têtes envoyés ;
  • les réponses du serveur ;
  • les détails SSL ;
  • les éventuelles erreurs.

C’est un peu comme ouvrir le capot d’une voiture pour regarder le moteur tourner.

Gérer les cookies avec cURL

Oui, cURL peut aussi gérer les cookies.

Enregistrer les cookies

curl -c cookies.txt https://example.com

Réutiliser les cookies

curl -b cookies.txt https://example.com

Très utile pour rester connecté à un site dans un script automatisé.

Envoyer un fichier vers un serveur

Supposons que vous souhaitiez envoyer une image vers une API.

curl -F "file=@image.jpg" https://example.com/upload

L’option -F permet d’envoyer un formulaire multipart.

C’est exactement ce qu’un navigateur fait lorsqu’on utilise un formulaire HTML d’upload.

Désactiver temporairement la vérification SSL

Désactiver la vérification SSL avec cURL (via l’option -k ou --insecure) sert à dire à l’ordinateur : « Je sais que la connexion n’est pas prouvée sécurisée, mais je veux quand même voir le contenu. »

Voici pourquoi on l’utilise parfois :

1. Pour le développement local

Quand un développeur travaille sur son propre ordinateur, il crée souvent des sites de test. Ces sites n’ont pas de « vrai » certificat officiel (ce qui coûte de l’argent ou du temps à configurer). En désactivant la vérification, il peut tester son code sans être bloqué par un message d’erreur.

2. Certificats « Auto-signés »

C’est comme si quelqu’un créait sa propre carte d’identité à la main. Le navigateur ne lui fait pas confiance par défaut, mais si vous savez que c’est votre propre serveur, vous pouvez forcer le passage.

⚠️ Le danger

Il ne faut jamais faire cela sur un vrai site internet ou avec des données sensibles (mots de passe, cartes bancaires).

  • Sans vérification : N’importe qui peut intercepter vos données en se faisant passer pour le site.
  • Avec vérification : cURL vérifie la « signature » du site auprès d’un organisme officiel pour garantir que vous parlez à la bonne personne.

En résumé : C’est une « roue de secours » pour les techniciens en plein travail, mais c’est une très mauvaise idée pour la navigation de tous les jours.

curl -k https://example.com

Attention toutefois : cette option réduit la sécurité. À éviter sur des serveurs sensibles.

Utiliser cURL dans un script Bash

Là où cURL devient redoutable, c’est dans l’automatisation. Voici un petit script :

#!/bin/bash

curl https://example.com/api > resultat.json

echo "Téléchargement terminé"

Enregistrez cela dans un fichier :

script.sh

Puis rendez-le exécutable :

chmod +x script.sh

Enfin :

./script.sh

Vous venez de créer votre premier script automatisé avec cURL.

👉 Pour en savoir plus :

Combiner cURL avec d’autres commandes

Le terminal devient vraiment puissant lorsqu’on combine plusieurs outils.

Rechercher un mot dans une page

curl https://example.com | grep "connexion"

👉 Tout savoir sur la commande GREP.

Sauvegarder une réponse JSON

curl https://example.com/api > data.json

Lire du JSON plus proprement avec jq

curl https://example.com/api | jq

Le programme jq permet d’afficher du JSON de façon lisible. Très utile quand les réponses deviennent longues.

👉 jq : manipuler du JSON depuis le terminal facilement

Les erreurs fréquentes avec cURL

Quand on débute, certaines erreurs reviennent souvent.

Et c’est totalement normal.

Erreur 404

HTTP/1.1 404 Not Found

La page demandée n’existe pas.

Vérifiez simplement l’URL.

Erreur SSL

SSL certificate problem

Le certificat du serveur pose problème.

Pour des tests locaux, utilisez :

curl -k

👉 Pour en savoir plus : Let’s Encrypt, HTTPS et SSL

Mauvais guillemets

Sous Linux et macOS :

"texte"

Sous PowerShell, certaines commandes nécessitent parfois des apostrophes :

'texte'

Ce petit détail peut faire perdre énormément de temps aux débutants. Oui… vraiment énormément.

Les bonnes pratiques avec cURL

Quand vous commencerez à utiliser cURL régulièrement, quelques habitudes feront une grande différence.

Évitez d’écrire vos mots de passe en clair

Préférez les variables d’environnement :

export TOKEN="mon_token"

Puis :

curl -H "Authorization: Bearer $TOKEN"

Testez toujours vos requêtes étape par étape

Ne construisez pas une énorme commande de 14 lignes dès le départ. Commencez simple. Puis ajoutez progressivement les options.

Utilisez le mode verbose en cas de problème

curl -v

Cette option règle énormément de mystères.

Mini projet concret : récupérer la météo depuis une API avec cURL

Mettons maintenant tout cela en pratique : Nous allons récupérer la météo depuis une API publique.

Étape 1 : faire la requête

curl "https://wttr.in/Paris?format=3"

Résultat :

Paris: ☀️ +22°C

Incroyablement simple.

Étape 2 : sauvegarder le résultat

curl "https://wttr.in/Paris?format=3" > meteo.txt

Étape 3 : automatiser cela dans un script

#!/bin/bash

curl "https://wttr.in/Paris?format=3" > meteo.txt

echo "Météo enregistrée"

Vous pourriez ensuite exécuter ce script automatiquement chaque matin avec cron sous Linux.

  • Et voilà : vous utilisez désormais cURL dans un vrai mini projet concret.

Aller plus loin avec cURL

Même après plusieurs années, beaucoup de développeurs continuent d’apprendre de nouvelles astuces avec cURL.

L’outil possède des centaines d’options :

curl --help

Ou encore :

man curl

Au début, cela peut sembler gigantesque. Mais rassurez-vous : dans la pratique, une dizaine d’options suffisent déjà pour accomplir énormément de choses.

Le plus important est surtout de comprendre la logique des requêtes HTTP et d’expérimenter régulièrement.

Tableau récapitulatif des commandes de cURL

Commande cURLDescriptionExemple
curl URLRécupère le contenu d’une page webcurl https://example.com
curl -I URLAffiche uniquement les en-têtes HTTPcurl -I https://example.com
curl -L URLSuit automatiquement les redirectionscurl -L https://example.com
curl -O URLTélécharge un fichier avec son nom d’originecurl -O https://site.com/fichier.zip
curl -o nom.ext URLTélécharge un fichier avec un nom personnalisécurl -o sauvegarde.zip https://site.com/fichier.zip
curl -X POST URLEnvoie une requête POSTcurl -X POST https://api.com
curl -d "data"Envoie des données dans une requêtecurl -d "nom=Jean" https://api.com
curl -H "Header"Ajoute un en-tête HTTP personnalisécurl -H "Authorization: Bearer TOKEN" URL
curl -v URLActive le mode verbose pour le débogagecurl -v https://example.com
curl -u user:pass URLUtilise une authentification Basic Authcurl -u admin:1234 https://api.com
curl -F "file=@fichier"Envoie un fichier vers un serveurcurl -F "file=@image.jpg" https://site.com/upload
curl -c cookies.txt URLSauvegarde les cookies dans un fichiercurl -c cookies.txt https://example.com
curl -b cookies.txt URLRéutilise des cookies enregistréscurl -b cookies.txt https://example.com
curl -k URLIgnore les erreurs SSLcurl -k https://localhost
curl -C - -O URLReprend un téléchargement interrompucurl -C - -O https://site.com/gros.zip
curl --limit-rate 1M URLLimite la vitesse de téléchargementcurl --limit-rate 1M -O fichier.zip
curl URL > fichier.txtEnregistre la réponse dans un fichiercurl https://api.com > resultat.json
curl --helpAffiche l’aide complète de cURLcurl --help
man curlOuvre le manuel détaillé de cURLman curl

FAQ cURL

Peut-on utiliser cURL sans être développeur ?

Oui, cURL reste accessible même si vous débutez totalement avec le terminal. Les commandes de base sont simples à comprendre et permettent rapidement de télécharger des fichiers, tester un site web ou récupérer des données depuis une API sans interface graphique complexe.

Quelle est la différence entre cURL et un navigateur web ?

Un navigateur affiche visuellement les pages web alors que cURL travaille directement dans le terminal. Il permet surtout d’envoyer des requêtes HTTP rapidement, d’automatiser certaines tâches et de tester des serveurs ou des API sans ouvrir une interface graphique.

Pourquoi utiliser cURL pour tester une API ?

cURL permet d’envoyer des requêtes HTTP en quelques secondes et d’afficher immédiatement la réponse du serveur. C’est un excellent moyen de comprendre comment fonctionne une API, vérifier des données JSON ou tester différentes méthodes comme GET, POST ou DELETE directement depuis le terminal.


Vous venez de découvrir les bases essentielles de cURL depuis le terminal. Et mine de rien, vous avez déjà appris énormément de choses : envoyer des requêtes HTTP, télécharger des fichiers, utiliser des API, gérer des données JSON et même automatiser certaines tâches.

Au départ, le terminal paraît souvent froid et intimidant. Pourtant, plus vous pratiquerez, plus vous réaliserez à quel point il peut devenir un outil rapide, puissant et presque addictif.

Le meilleur conseil maintenant ? Testez. Essayez. Cassez des choses. Recommencez.

Lancez des requêtes sur des API publiques, récupérez des données, automatisez des téléchargements ou créez de petits scripts personnels. C’est en manipulant réellement cURL que vous prendrez confiance.