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 enregistrera le fichier 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 web.

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

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

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 !

Laisser un commentaire