Aide-mémoire cURL
Une référence curl imprimable et consultable — méthodes HTTP, en-têtes, données et formulaires, authentification, téléchargements, cookies, TLS, proxys et débogage. Gratuit.
Bases
12curl https://api.example.com
Envoyer une requête GET et afficher le corps
curl -o page.html https://example.com
Enregistrer la réponse dans un fichier nommé
curl -O https://example.com/file.zip
Enregistrer avec le nom de fichier distant
curl -i https://example.com
Afficher les en-têtes de réponse et le corps
curl -I https://example.com
Récupérer uniquement les en-têtes de réponse (HEAD)
curl -v https://example.com
Sortie détaillée de la requête/réponse
curl -s https://example.com
Mode silencieux, masque progression et erreurs
curl -sS https://example.com
Silencieux mais affiche quand même les erreurs
curl -L https://example.com
Suivre les redirections HTTP (3xx)
curl https://a.com https://b.com
Demander plusieurs URL en un seul appel
curl 'https://x.com/p?[1-5]'
Utiliser une plage numérique pour boucler sur des URL
curl --version
Afficher la version et les fonctionnalités de curl
Méthodes HTTP
9curl -X GET https://api.example.com
Envoyer explicitement une requête GET
curl -X POST https://api.example.com
Envoyer une requête POST
curl -X PUT https://api.example.com/1
Envoyer une requête PUT pour remplacer une ressource
curl -X PATCH https://api.example.com/1
Envoyer une requête PATCH pour mettre à jour des champs
curl -X DELETE https://api.example.com/1
Envoyer une requête DELETE
curl -I https://api.example.com
Envoyer une requête HEAD pour les en-têtes seulement
curl -X OPTIONS https://api.example.com
Envoyer une requête preflight OPTIONS
curl --head https://api.example.com
Forme longue de -I pour une requête HEAD
curl --request POST https://x.com
Forme longue de -X pour définir la méthode
En-têtes
10curl -H 'Accept: application/json' https://x.com
Ajouter un en-tête de requête
curl -H 'X-Token: abc' -H 'X-Env: dev' https://x.com
Ajouter plusieurs en-têtes
curl -H 'Content-Type: application/json' https://x.com
Déclarer le type de contenu du corps de la requête
curl -H 'Authorization: Bearer TOKEN' https://x.com
Envoyer un en-tête d'autorisation bearer
curl -H 'Host: example.com' https://1.2.3.4
Remplacer l'en-tête Host
curl -H 'Accept-Encoding: gzip' https://x.com
Demander une réponse compressée gzip
curl -A 'MyAgent/1.0' https://x.com
Définir la chaîne User-Agent
curl -e 'https://ref.com' https://x.com
Définir l'en-tête Referer
curl -H 'X-Debug:' https://x.com
Supprimer un en-tête par défaut en le laissant vide
curl --compressed https://x.com
Demander et décompresser automatiquement la réponse
Envoi de données
11curl -d 'name=Jane&age=30' https://x.com
POST de données de formulaire URL-encodées
curl -d '@payload.json' https://x.com
POST de données lues depuis un fichier
curl --data-urlencode 'q=hello world' https://x.com
POST d'un seul champ URL-encodé
curl --data-binary '@file.bin' https://x.com
POST d'octets bruts sans traitement
curl -G --data-urlencode 'q=cats' https://x.com
Ajouter les données en chaîne de requête GET
curl -X POST -H 'Content-Type: application/json' -d '{"name":"Jane"}' https://x.com
POST d'un corps JSON
curl --json '{"name":"Jane"}' https://x.com
POST JSON avec en-têtes JSON automatiques
curl -F 'name=Jane' https://x.com
Envoyer un champ de formulaire multipart
curl -F 'file=@photo.png' https://x.com
Envoyer un fichier en form-data multipart
curl -F 'file=@a.pdf;type=application/pdf' https://x.com
Envoyer un fichier avec un type MIME explicite
curl -d '' https://x.com
POST avec un corps vide
Authentification
9curl -u user:pass https://x.com
Authentification HTTP basic
curl -u user https://x.com
Auth basic, demande le mot de passe
curl -H 'Authorization: Bearer TOKEN' https://x.com
Envoyer un en-tête de jeton bearer
curl --oauth2-bearer TOKEN https://x.com
Envoyer un jeton bearer OAuth 2.0
curl --digest -u user:pass https://x.com
Utiliser l'authentification HTTP digest
curl --ntlm -u user:pass https://x.com
Utiliser l'authentification NTLM
curl --netrc https://x.com
Lire les identifiants depuis ~/.netrc
curl --netrc-file creds https://x.com
Lire les identifiants depuis un fichier netrc personnalisé
curl -H 'X-Api-Key: KEY' https://x.com
Envoyer un en-tête de clé API
Téléchargement et envoi
11curl -O https://x.com/file.zip
Télécharger avec le nom de fichier distant
curl -o out.zip https://x.com/file.zip
Télécharger vers un nom de fichier choisi
curl -OL https://x.com/file.zip
Télécharger en suivant les redirections
curl -C - -O https://x.com/file.zip
Reprendre un téléchargement partiel
curl --limit-rate 200k -O https://x.com/f
Limiter la vitesse de transfert
curl -r 0-1023 -o part https://x.com/f
Télécharger une plage d'octets seulement
curl --retry 3 -O https://x.com/f
Réessayer le téléchargement en cas d'échec
curl -T file.txt ftp://x.com/
Envoyer un fichier via PUT/FTP
curl -T file.txt https://x.com/up
Envoyer un fichier via HTTP PUT
curl --create-dirs -o a/b/f.txt https://x.com
Créer les répertoires manquants pour la sortie
curl -# -O https://x.com/file.zip
Afficher une barre de progression simple
Cookies
8curl -b 'session=abc123' https://x.com
Envoyer un cookie en ligne
curl -b cookies.txt https://x.com
Envoyer des cookies depuis un fichier
curl -c cookies.txt https://x.com
Écrire les cookies reçus dans un jar
curl -b jar.txt -c jar.txt https://x.com
Lire et mettre à jour le même cookie jar
curl -b 'a=1; b=2' https://x.com
Envoyer plusieurs cookies en une fois
curl -c - https://x.com
Afficher les cookies reçus sur stdout
curl --junk-session-cookies -b jar.txt https://x.com
Ignorer les cookies de session du jar
curl -L -c jar.txt -b jar.txt https://x.com/login
Conserver une session à travers les redirections
TLS / SSL
10curl -k https://x.com
Autoriser le non sécurisé (ignorer la vérification du certificat)
curl --cacert ca.pem https://x.com
Vérifier avec un bundle CA personnalisé
curl --capath /etc/ssl/certs https://x.com
Utiliser un répertoire de certificats CA
curl --cert client.pem https://x.com
Envoyer un certificat client
curl --cert client.pem --key client.key https://x.com
Utiliser un certificat client et une clé privée
curl --tlsv1.2 https://x.com
Exiger au moins TLS 1.2
curl --tlsv1.3 https://x.com
Exiger au moins TLS 1.3
curl --tls-max 1.2 https://x.com
Limiter la version TLS maximale
curl --ciphers ECDHE-RSA-AES128-GCM-SHA256 https://x.com
Restreindre les chiffrements TLS autorisés
curl -vI https://x.com
Inspecter les détails du handshake TLS
Proxies
9curl -x http://proxy:8080 https://x.com
Router la requête via un proxy HTTP
curl --proxy http://proxy:8080 https://x.com
Forme longue de -x pour définir un proxy
curl -x proxy:8080 -U user:pass https://x.com
S'authentifier auprès du proxy
curl --proxy-user user:pass -x proxy:8080 https://x.com
Forme longue des identifiants de proxy
curl --socks5 127.0.0.1:1080 https://x.com
Utiliser un proxy SOCKS5
curl --socks5-hostname 127.0.0.1:1080 https://x.com
Proxy SOCKS5 avec résolution DNS distante
curl --socks4 127.0.0.1:1080 https://x.com
Utiliser un proxy SOCKS4
curl --noproxy example.com https://x.com
Contourner le proxy pour certains hôtes
curl -x '' https://x.com
Désactiver tout proxy configuré
Débogage et sortie
11curl -w '%{http_code}\n' -o /dev/null -s https://x.com
Afficher uniquement le code de statut HTTP
curl -w '%{time_total}\n' -o /dev/null -s https://x.com
Afficher le temps total de transfert
curl -w '@format.txt' https://x.com
Lire le format write-out depuis un fichier
curl -D headers.txt https://x.com
Écrire les en-têtes de réponse dans un fichier
curl -D - -o body.txt https://x.com
En-têtes sur stdout, corps dans un fichier
curl --trace trace.txt https://x.com
Trace hexa complète du transfert
curl --trace-ascii - https://x.com
Trace ASCII sur stdout
curl --trace-time -v https://x.com
Ajouter des horodatages à la sortie détaillée
curl -v https://x.com 2>&1 | less
Parcourir le journal détaillé par pages
curl -sS -o /dev/null -w '%{size_download}\n' https://x.com
Afficher le nombre d'octets téléchargés
curl --libcurl out.c https://x.com
Émettre le code C libcurl équivalent
Délais et nouvelles tentatives
10curl --connect-timeout 5 https://x.com
Limiter la phase de connexion en secondes
curl --max-time 30 https://x.com
Limiter la durée totale de l'opération
curl --retry 3 https://x.com
Réessayer sur erreurs transitoires
curl --retry 3 --retry-delay 2 https://x.com
Attendre entre les tentatives
curl --retry 5 --retry-max-time 60 https://x.com
Limiter le temps total passé à réessayer
curl --retry-connrefused https://x.com
Réessayer aussi sur connexion refusée
curl --retry-all-errors https://x.com
Réessayer sur toute erreur, pas que transitoire
curl --speed-limit 100 --speed-time 10 https://x.com
Abandonner si trop lent pendant une durée
curl --keepalive-time 60 https://x.com
Définir l'intervalle keep-alive TCP
curl --expect100-timeout 1 https://x.com
Limiter l'attente d'un 100-continue
Aucune entrée ne correspond à « :q ».
Besoin d'aide ?
Un problème avec cet outil ? Signalez-le à notre équipe.