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.
Sommaire
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 |
‑‑ciphers | Spécifie les chifferements à utiliser dans la connexion. La liste des chifferements doit être valide. |
‑‑connect‑timeout | Temps maximum en secondes que vous permettez à la connexion au serveur de prendre. |
–cookie ou -b | Envoie un cookie dans la requête, par exemple, -b “name=value” ou –cookie “name=value”. |
–header ou -H | Ajoute un en-tête personnalisé à la requête, par exemple, -H “Content-Type : application/json” ou –header “Content-Type : application/json”. |
–user ou -u | Envoie 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 –head | Envoie uniquement les en-têtes de la réponse, pas le corps. |
-L ou –location | Suit les redirections. |
–output ou -o | Spécifie un fichier dans lequel enregistrer la réponse, par exemple, -o response.txt ou –output response.txt. |
–silent ou -s | Ré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 !
Commentaires
March 30 2021
bonjour j'utilise CURL depuis longtemps mais là j'ai un soucis je dois récupérer des fichiers sur un site https et je n'en connais pas le nom exact. je sais simplement qu'ils sont sous la forme "SGN.xxxxxx". où x est l'inconnu. Et je n'y arrive pas. pouvez-vous m'aider svp ? merci d'avance Cdt Patrick VOISIN
January 09 2023
Bonjour et merci pour votre commentaire ! Malheureusement il n'y a pas beaucoup d'aide que nous pouvons fournir si vous ne connaissez pas le nom du site pour lequel vous voulez retirer les fichiers. Vous pouvez contacter le service d'assistance sur fr@hostinger.com si le site est hébergé sur leur plan d'hébergement, mais s'il est hébergé ailleurs, nous ne pourrons pas faire grand-chose.