accueil > Gestion réseau > curl

curl : L'outil polyvalent pour le transfert et le test de données basés sur URL

Un outil en ligne de commande puissant pour échanger des données avec des serveurs en utilisant des URL. Il prend en charge divers protocoles comme HTTP/HTTPS, FTP/FTPS, SFTP, et est largement utilisé pour tester des API, télécharger/téléverser des fichiers et résoudre des problèmes.

Qu'est-ce que curl ?

curl est l'abréviation de 'Client URL', un utilitaire CLI pour transférer/recevoir des données en utilisant la syntaxe URL. Il est utilisé dans un large éventail de domaines, y compris le développement web, les tests d'API, l'automatisation CI/CD et le dépannage opérationnel.

Fonctionnalités clés

  • Divers protocoles: HTTP/HTTPS, FTP/FTPS, SFTP, LDAP, SMTP/SMTPS, etc. (selon les options de compilation).
  • Contrôle HTTP: Contrôle détaillé des méthodes, en-têtes, cookies, compression, HTTP/2, redirections, délais d'attente, réessais.
  • Téléchargement/Téléversement: Téléchargement de fichiers (-o/-O), reprise (-C -), téléversement de formulaires (-F), téléversement d'un seul fichier (-T).
  • Sécurité: Vérification des certificats TLS (activée par défaut), spécification de la racine de confiance (--cacert), certificat client (--cert/--key).
  • Convivialité pour l'automatisation: Sortie silencieuse (-s), échec à la sortie (-f), sortie formatée (-w), adapté aux scripts.

Options principales (Shell)

L'URL cible de la requête est la plus fondamentale. Vous pouvez spécifier plusieurs URL séparées par des espaces ou les lire à partir d'un fichier (@file).

1. Requêtes et téléchargements de base

2. Méthodes HTTP et transfert de données

3. En-têtes, authentification, cookies

4. Contrôle de la sortie/fiabilité

5. Sécurité/TLS & Proxy/Diagnostic

6. Protocole/Version

7. Aide/Version

Commande générée :

Essayez de combiner les commandes.

Description:

`curl` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples de scénarios d'utilisation (Shell)

Voici des modèles de requêtes fréquemment utilisés en pratique.

Afficher le contenu d'une page web

curl https://example.com

Requête GET de base.

Téléchargement de fichier (suivi de redirection)

curl -O -L https://wordpress.org/latest.zip

-O nom de fichier original, -L suivi de redirection.

GET JSON + formatage

curl -s https://api.github.com/users/google | jq

Analyse/améliore la lisibilité avec jq.

POST JSON

curl -X POST -H "Content-Type: application/json" -d '{"username":"test"}' https://api.example.com/users

Spécifie l'en-tête et le corps.

Téléversement de fichier de formulaire (multipart)

curl -F "upload_file=@./my-image.png" https://example.com/upload

Nom du champ=upload_file, spécifie le chemin du fichier avec @.

Authentification par jeton Bearer

curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://api.example.com/me

Utilise l'en-tête Authorization.

Vérifier uniquement les en-têtes de réponse

curl -I https://google.com

Utile pour diagnostiquer l'état du service/cache.

Échec avec code de sortie non nul + silencieux

curl -sSf https://example.com/health

Combinaison -sS -f : adaptée aux scripts.

Délai d'attente + Réessayer

curl --connect-timeout 5 --max-time 20 --retry 3 --retry-all-errors https://example.com/api

Réponse aux réseaux instables.

Tester avec une IP spécifique (--resolve)

curl --resolve 'api.example.com:443:203.0.113.10' https://api.example.com/status

Test de contournement DNS (maintient SNI).

Installation

Généralement fourni par défaut ; sinon, installez-le via le gestionnaire de paquets.

Debian/Ubuntu

sudo apt update && sudo apt install -y curl

RHEL/CentOS/Fedora

sudo dnf install -y curl

Arch Linux

sudo pacman -S --needed curl

Conseils et précautions

Conseils utiles

  • curl vs wget: wget est fort pour les téléchargements de gros volumes/récursifs, curl est fort pour l'interaction API/le contrôle fin.
  • Guillemets: Il est recommandé d'utiliser des guillemets simples autour des données JSON/caractères spéciaux avec -d/-H.
  • Réponse compressée: L'utilisation de --compressed permet au serveur de décompresser automatiquement si pris en charge, réduisant ainsi le volume de données transférées.
  • Proxy: Le proxy HTTP est configuré avec -x, SOCKS5 avec --socks5.
  • Attention à la sécurité (-k): -k/--insecure est réservé au développement/test. En production, il est recommandé de configurer une racine de confiance (--cacert).

commandes associées

Des commandes fonctionnellement similaires ou souvent utilisées ensemble.



Commandes de la même catégorie