Qu'est-ce que la commande curl ? Exemples, Flags, Requêtes HTTP

curl est un outil ligne de commande pour requêtes HTTP/HTTPS/FTP depuis le terminal. Pour testing API, debugging, scripting et checks CI.

Qu'est-ce que la commande curl ?

curl (Client URL) est un outil ligne de commande et library pour transférer des données avec URLs. Il supporte des dizaines de protocoles (HTTP, HTTPS, FTP, SFTP, SMTP, IMAP, LDAP, SCP) et est le standard de facto pour faire des requêtes HTTP depuis le terminal. Originellement écrit en 1996 par Daniel Stenberg, curl est bundled avec la plupart des distributions Linux, macOS et Windows 10+.

Les développeurs utilisent curl pour tester des endpoints API, debug d'issues HTTP, scripting d'automatisation, télécharger des fichiers et checks CI/CD.

Syntaxe basique curl

curl https://api.example.com/users/42

Avec headers + body :

curl -i https://api.example.com/users/42

POST avec body JSON :

curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -d '{"name": "Alice", "email": "alice@example.com"}'

Flags curl les plus utilisés

FlagCe qu'il fait
-X METHODDéfinir méthode HTTP
-H "Header: value"Ajouter header de requête
-d 'data'Envoyer body de requête
-d @file.jsonLire body depuis fichier
-F "field=value"Envoyer champ multipart/form-data
-F "file=@photo.jpg"Uploader un fichier (multipart)
-iInclure headers de response
-IEnvoyer requête HEAD
-LSuivre redirects
-o fileSauvegarder body response dans fichier
-sMode silent
-vOutput verbose (debug)
-kSauter vérification cert TLS
-u user:passHTTP Basic Auth
--max-time NTimeout total en secondes

Recettes courantes curl

Tester un endpoint API

curl -i https://api.example.com/health

POSTer JSON

curl -X POST https://api.example.com/orders \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"product_id": 42, "quantity": 1}'

Télécharger un fichier

curl -O https://example.com/large-file.zip

Uploader un fichier (multipart)

curl -F "avatar=@photo.jpg" -F "username=alice" https://api.example.com/upload

Obtenir uniquement le code status HTTP

curl -s -o /dev/null -w "%{http_code}" https://example.com

curl vs wget vs httpie

AspectcurlwgetHTTPie
Meilleur pourScripting, testing APITéléchargements fichier, mirroringTesting API human-friendly
OutputStdoutFichierStdout, color-coded
Téléchargement récursifNonOui (spécialité)Non
Protocoles30+HTTP, HTTPS, FTPHTTP/HTTPS seulement
Pré-installéPresque partoutLinux seulement typiquementNécessite install

Pièges courants curl

  • Oublier Content-Type pour JSON.
  • Escape de quotes en shell.
  • Logger des secrets.
  • Issues HTTP/2.
  • Status code incorrect dans scripts. --fail pour exit non-zero sur 4xx/5xx.

curl dans CI/CD

  • Smoke tests après deploy.
  • Endpoints health check.
  • Tests intégration API.
  • Tests budget performance.

FAQ : commande curl

Quelle est la différence entre -d et --data-raw ?

-d traite @ comme "lire depuis fichier". --data-raw envoie les characters @ littéraux.

Comment j'envoie une méthode HTTP custom ?

-X CUSTOM fonctionne.

Comment je vois la requête que curl envoie ?

-v pour mode verbose.

curl peut-il faire des requêtes parallèles ?

curl 7.66+ supporte --parallel. Pour load testing at scale outils dédiés.

Comment je gère les cookies entre plusieurs calls curl ?

Sauvegarder avec --cookie-jar, envoyer avec --cookie.

Puis-je utiliser curl comme outil load testing ?

Pour 1-10 requêtes concurrentes oui. Pour vrai load testing outils dédiés.

Au-delà de curl : load testing at scale avec LoadFocus

Si vous avez atteint les limites de curl-in-a-loop pour load testing, LoadFocus exécute des scripts JMeter et k6 qui poussent requêtes HTTP jusqu'à 12 500 VUs depuis 25+ régions. Inscrivez-vous sur loadfocus.com/signup.

Quelle est la vitesse de votre site web?

Augmentez sa vitesse et son référencement naturel de manière transparente avec notre Test de Vitesse gratuit.

Test gratuit de vitesse du site Web

Analyser la vitesse de chargement de votre site Web et améliorer ses performances avec notre outil gratuit de vérification de la vitesse de la page.

×