Comment Utiliser la Commande cURL Sous Linux ?

La commande cURL est disponible sur la plupart des systèmes basés sur Unix. C’est l’abréviation de “Client URL”. Les commandes cURL sont conçues pour fonctionner comme un moyen de vérifier la connectivité aux URL et comme un excellent outil pour transférer des données. Voyons comment vous pouvez commencer à l’utiliser sous Linux.

La commande cURL prend en charge la liste de protocoles ci-dessous :

  • HTTP et HTTPS
  • FTP et FTPS
  • IMAP et IMAPS
  • POP3 et POP3S
  • SMB et SMBS
  • SFTP
  • SCP
  • TELNET
  • GOPHER
  • LDAP et LDAPS
  • SMTP et SMTPS

Ces protocoles sont les plus importants, mais il en existe d’autres. cURL est alimenté par libcurl, qui est une bibliothèque gratuite de transfert d’URL côté client.

Vérifier la version de cURL

Avant de commencer à travailler avec cURL, nous devons nous connecter à notre VPS. Si vous avez besoin d’aide, consultez ce tutoriel de SSH.

Tout d’abord, vérifions quelle version de cURL est disponible avec la commande suivante :

curl --version

Le résultat affichera la version de cURL et une liste des protocoles pris en charge. Nous pouvons maintenant voir quelques exemples de commandes cURL.

Syntaxe basique de la commande cURL

Apprenons à utiliser les commandes de cURL. La syntaxe de base de cURL ressemble à ceci :

curl [OPTIONS] [URL]

L’utilisation la plus simple de cURL est d’afficher le contenu d’une page. L’exemple ci-dessous permet d’afficher la page d’accueil du site domainetest.com.

curl domainetest.com

Cela permet d’obtenir le code source complet de la page d’accueil du domaine. Si aucun protocole n’est spécifié, cURL l’interprétera en HTTP.

Options de la commande cURL pour les fichiers

Les commandes cURL permettent de télécharger des fichiers à distance. Vous pouvez le faire de deux manières différentes :

  • -O permet de télécharger un fichier et l’enregistrer dans le dossier de travail actuel avec le même nom de fichier.
  • -o vous permet de spécifier un nom de fichier ou un emplacement différent

Voici un exemple de ce type d’action :

curl -O http://domainetest.com/fichiertest.tar.gz

La commande ci-dessus va enregistrer le fichier sous le nom fichiertest.tar.gz.

curl -o nouveaufichiertest.tar.gz http://domainetest.com/fichiertest.tar.gz

La commande ci-dessus va enregistrer le fichier sous le nom nouveaufichiertest.tar.gz.

Si, pour une raison quelconque, le téléchargement est interrompu, vous pouvez le reprendre en utilisant cURL. Vous pouvez le faire avec la commande suivante :

curl -C - -O  http://domainetest.com/fichiertest.tar.gz

En utilisant cURL, nous pouvons également télécharger plusieurs fichiers, comme indiqué ci-dessous :

curl -O http://domainetest.com/fichiertest.tar.gz -O http://mondomaine.com/monfichier.tar.gz

Si vous souhaitez télécharger plusieurs fichiers à partir de plusieurs URL, listez-les tous dans un fichier. La commande cURL peut être combinée avec xargs pour télécharger les différentes URL.

Par exemple, si nous avons un fichier toutesUrls.txt qui contient une liste de toutes les URL à télécharger, alors l’exemple ci-dessous peut être utilisé pour télécharger tous les fichiers.

xargs –n 1 curl -O < toutesUrls.txt

Commande cURL pour http

cURL peut également être utilisé lorsqu’il existe un serveur proxy. Si vous êtes derrière un serveur proxy qui utilise le port 8090 sur exempledeproxy.com, téléchargez les fichiers comme indiqué ci-dessous :

curl -x  exempledeproxy.com:8090 -U nomutilisateur:motdepasse -O http://domainetest.com/fichiertest.tar.gz

Dans l’exemple ci-dessus, vous pouvez éviter le paramètre -U nomutilisateur:motdepasse si le proxy ne nécessite pas de méthode d’authentification.

Une requête HTTP typique contient toujours un en-tête. L’en-tête HTTP envoie des informations supplémentaires sur le serveur web distant avec la requête actuelle. Bien que les outils de développement d’un navigateur vous permettent de vérifier les informations de l’en-tête, vous pouvez les vérifier à l’aide d’une commande cURL.

Vous trouverez ci-dessous un exemple de la manière de récupérer les informations d’en-tête d’un site internet.

curl -I www.domainetest.com

En utilisant cURL, vous pouvez lancer une requête GET et POST. Une requête GET se présente comme suit :

curl http://domainetest.com

Un exemple avec une requête POST est présenté ci-dessous :

curl –data “texte=Bonjour” https://mondomaine.com/premierePage.jsp

Ici texte=Bonjour est le paramètre de requête POST. Cette méthode est similaire à celle utilisée pour les formulaires HTML.

Vous pouvez également spécifier plusieurs méthodes HTTP en une seule commande curl. Pour ce faire, utilisez l’option -next, comme ceci :

curl –data “texte=Bonjour” https://mondomaine.com/premierePage.jsp --next https://mondomaine.com/afficherResultat.jsp

Ceci contient une requête POST suivie d’une requête GET.

Chaque requête HTTP aura un agent utilisateur qui est envoyé dans le cadre de la requête. Cela indique les détails du navigateur web du client. Par défaut, une requête cURL contient cURL et le numéro de version comme détails de l’agent utilisateur. Un exemple de résultat est présenté ci-dessous :

“GET / HTTP/1.1” 200 “_” ”curl/7/29/0”

Vous pouvez modifier ces informations d’agent utilisateur par défaut en utilisant la commande ci-dessous :

curl -I http://mondomaine.com –-user-agent “Mon nouveau navigateur”

Maintenant, le résultat modifié sera :

“GET / HTTP/1.1” 200 “_” “Mon nouveau navigateur”

cURL pour les cookies d’un site internet

La commande cURL peut être utilisée pour vérifier quels cookies sont téléchargés sur n’importe quelle URL. Ainsi, si vous accédez à https://www.sitewebexemple.com, vous pouvez créer un fichier, enregistrer les cookies et les consulter à l’aide de cat ou d’un éditeur VIM.

Vous trouverez ci-dessous un exemple de commande de ce type :

curl --cookie-jar Mescookies.txt https://www.sitewebexemple.com/index.html -O

De même, si vous avez les cookies dans un fichier, vous pouvez l’envoyer au site web. Un exemple de cette commande est présenté ci-dessous :

curl --cookie Mescookies.txt https://www.sitewebexemple.com

cURL pour FTP

La commande cURL supporte le FTP ! Vous pouvez l’utiliser pour télécharger des fichiers à partir d’un serveur distant.

curl -u nomutilisateur:motdepasse -O ftp://exempleserveurftp/fichiertest.tar.gz

Dans la commande ci-dessus, ftp://exempleserveurftp est un serveur FTP qui accepte les connexions. Le nom d’utilisateur et le mot de passe peuvent être ignorés pour les connexions FTP anonymes. Tapez la commande et regardez la barre de progression se remplir.

Vous pouvez également télécharger des fichiers avec la commande ci-dessous :

curl -u nomutilisateur:motdepasse -T fichiertest.tar.gz ftp://exempleserveurftp

Là aussi, nous pouvons ignorer le nom d’utilisateur et le mot de passe pour les connexions FTP anonymes.

Limiter les résultats de cURL

En utilisant cURL, vous ne pouvez pas savoir quelle sera la taille du résultat. Vous pouvez restreindre la bande passante, afin de vous assurer qu’elle n’est pas saturée par cURL.

La commande ci-dessous limite la bande passante à 100K :

curl --limit-rate 100K http://domainetest.com/fichiertest.tar.gz -O

Quelques options prises en charge par cURL

Option Explication
‑‑ciphersSpécifie les chifferements à utiliser dans la connexion. La liste des chifferements doit être valide.
‑‑connect‑timeoutTemps maximum en secondes que vous permettez à la connexion au serveur de prendre.
–cookie ou -bEnvoie un cookie dans la requête, par exemple, -b “name=value” ou –cookie “name=value”.
–header ou -HAjoute un en-tête personnalisé à la requête, par exemple, -H “Content-Type : application/json” ou –header “Content-Type : application/json”.
–user ou -uEnvoie un nom d’utilisateur et un mot de passe pour l’authentification de base, par exemple, -u “username:password” ou –user “username:password”.
-I ou –headEnvoie uniquement les en-têtes de la réponse, pas le corps.
-L ou –locationSuit les redirections.
–output ou -oSpécifie un fichier dans lequel enregistrer la réponse, par exemple, -o response.txt ou –output response.txt.
–silent ou -sRéduit au silence la sortie de la commande, ne montrant que les erreurs.
–show-error ou -S Affiche les erreurs mais pas la sortie normale.

Conclusion

cURL est une commande puissante et largement utilisée. Elle est utile quand vous dépendez de la ligne de commande. Elle dispose de plusieurs options et prend en charge plusieurs protocoles. Voila une excellente raison d’apprendre cette commande !

N’oubliez pas que si vous voulez apprendre des commandes avancées, il vous suffit de vous référer au manuel qui devrait se trouver dans toutes les versions d’Unix :

man curl

Nous espérons que ce tutoriel vous a donné un bon point de départ pour utiliser cURL ! Comment allez-vous utiliser cette commande ? Faites-le nous savoir dans les commentaires !

Author
L'auteur

Ismail

Ismail est un spécialiste du référencement et de la localisation chez Hostinger. Il est passionné par la technologie et le développement web et possède des années d'expérience dans le domaine informatique. Ses passe-temps incluent les jeux vidéo et le football.