Skip to content

Options curl expliquées

Les options curl utilisées au quotidien, regroupées par tâche : façonner la requête, définir les en-têtes, s'authentifier, présenter une identité, contrôler la sortie, suivre les redirections, régler la connexion et déboguer. Chaque ligne associe l'option à un appel réaliste.

curl envoie une requête HTTP et affiche le corps de la réponse. L'essentiel de sa puissance se trouve dans les options : elles choisissent la méthode, joignent les en-têtes et les données, gèrent l'authentification et décident de ce qui s'affiche. La forme longue est montrée quand elle est plus claire ; la forme courte est la lettre unique. Mettez les URL entre guillemets pour que le shell ne dévore pas la chaîne de requête.

Tableau de référence · 54 entrées
54 of 54 rows
Forme de la requête
Définit la méthode HTTP.curl -X POST https://api.test
Ajoute un en-tête à la requête.curl -H "Accept: application/json" URL
Envoie un corps (définit POST et un type de contenu par défaut).curl -d "name=Ada" URL
Ajoute les valeurs -d comme paramètres de requête à un GET.curl -G -d "q=hi" URL
Envoie des données de formulaire multipart (téléversements de fichiers).curl -F "file=@photo.png" URL
Envoie des données de formulaire avec encodage URL appliqué.curl --data-urlencode "name=Ada Lovelace" URL
Téléverse un fichier avec PUT.curl -T big.zip URL
Ajoute un téléversement au fichier distant au lieu de le remplacer.curl -a -T log.txt ftp://server.test/logs/log.txt
JSON et API
Envoie du JSON avec le bon type de contenu.curl -H "Content-Type: application/json" -d '{"a":1}' URL
Envoie le contenu d'un fichier comme corps.curl -d @body.json URL
Envoie du JSON sans définir les en-têtes à la main (curl 7.82+).curl --json '{"a":1}' URL
Authentification
Authentification HTTP Basic avec utilisateur et mot de passe.curl -u ada:s3cr3t URL
Envoie un jeton bearer OAuth.curl --oauth2-bearer TOKEN URL
Envoie n'importe quel schéma de jeton à la main.curl -H "Authorization: Bearer TOKEN" URL
Présente un certificat client et sa clé pour le TLS mutuel.curl --cert client.pem --key key.pem URL
Vérifie le serveur contre un fichier de bundle de CA.curl --cacert ca.pem URL
Vérifie le serveur contre un répertoire de CA.curl --capath /etc/ssl/certs URL
Envoie la requête via un proxy.curl -x http://proxy.test:8080 URL
Ignore la vérification TLS pour le saut vers le proxy uniquement.curl -x https://proxy.test:8443 --proxy-insecure URL
Exige TLS 1.3 comme version minimale.curl --tlsv1.3 URL
Identité
Envoie une chaîne User-Agent personnalisée.curl -A "Mozilla/5.0" URL
Envoie un en-tête Referer.curl -e https://example.com/page URL
Envoie des cookies avec la requête.curl -b "session=abc123" URL
Enregistre les cookies de réponse dans un fichier.curl -c cookies.txt URL
Sortie
Écrit le corps dans un fichier.curl -o page.html URL
Enregistre le corps avec le nom de fichier distant.curl -O https://site/file.tgz
Affiche les en-têtes de réponse au-dessus du corps.curl -i URL
Récupère uniquement les en-têtes (envoie HEAD).curl -I URL
Masque la barre de progression et les erreurs.curl -s URL
Affiche une chaîne de format après le corps (durées, statut).curl -w "%{http_code}\n" -o /dev/null URL
Sort avec un code non nul sur les erreurs HTTP et ignore le corps d'erreur.curl -f URL
Sort avec un code non nul sur les erreurs HTTP mais affiche quand même le corps.curl --fail-with-body URL
Nomme le fichier enregistré d'après l'en-tête Content-Disposition.curl -OJ URL
Reprend un transfert interrompu là où il s'était arrêté.curl -C - -O URL
Affiche une barre de progression au lieu du compteur par défaut.curl -# -O URL
Affiche les erreurs même en mode silencieux.curl -sS URL
Écrit les en-têtes de réponse dans un fichier.curl -D headers.txt URL
Demande une réponse compressée et la décode.curl --compressed URL
Crée les répertoires manquants dans le chemin -o.curl -o cache/api/data.json --create-dirs URL
Redirections et connexion
Suit les redirections 3xx.curl -L URL
Secondes maximum d'attente pour la connexion TCP.curl --connect-timeout 5 URL
Secondes maximum pour la requête entière.curl --max-time 30 URL
Ignore la vérification du certificat TLS.curl -k https://self-signed.test
Réessaie les erreurs transitoires jusqu'à N fois.curl --retry 3 URL
Réessaie sur toute erreur, pas seulement les transitoires.curl --retry 3 --retry-all-errors URL
Force la connexion en IPv4 ou IPv6.curl -4 URL
Associe un hôte et un port à une adresse, en contournant DNS.curl --resolve api.test:443:127.0.0.1 https://api.test
Lie le transfert à une interface réseau ou une adresse.curl --interface eth0 URL
Transfère plusieurs URL en même temps.curl -Z URL1 URL2
Utilise HTTP/2 ou HTTP/3 pour le transfert.curl --http3 URL
Diffuse le corps dès qu'il arrive au lieu de le mettre en tampon.curl -N URL
Lit les options suivantes dans un fichier de configuration.curl -K flags.cfg URL
Débogage
Affiche l'échange complet de requête et réponse.curl -v URL
Vidage hexadécimal de tout ce qui est envoyé et reçu.curl --trace - URL