Dans cet article, nous avons expliqué comment utiliser la commande Curl sous Linux.
La commande curl transfère des données vers ou depuis un serveur réseau, en utilisant l'un des protocoles pris en charge. Étant donné que cURL utilise libcurl, il prend en charge une gamme de protocoles réseau courants, notamment les requêtes HTTP,[10][14] HTTPS et SOAP.
Commençons et apprenons les commandes curl.
1. Voir la version curl
Les options -V ou --version renverront non seulement la version, mais également les protocoles et fonctionnalités pris en charge dans votre version actuelle.
$ curl --version
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocoles : fichier dict ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Caractéristiques : AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets
2. Télécharger un fichier
Si vous souhaitez télécharger un fichier, vous pouvez utiliser curl avec les options -O ou -o. Le premier enregistrera le fichier dans le répertoire de travail actuel avec le même nom que dans l'emplacement distant, tandis que le second vous permet de spécifier un nom de fichier et/ou un emplacement différent.
$ curl -O http://yourdomain.com/yourfile.tar.gz # Save as yourfile.tar.gz
$ curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz # Save as newfile.tar.gz
3. Reprendre un téléchargement interrompu
Si un téléchargement a été interrompu pour une raison quelconque (par exemple, en utilisant Ctrl + c), vous pouvez le reprendre très facilement. L'utilisation de -C - (tiret C, tiret espace) indique à curl de reprendre le téléchargement en commençant là où il s'était arrêté.
$ curl -C - -O http://yourdomain.com/yourfile.tar.gz
4. Télécharger plusieurs fichiers
Avec la commande suivante, vous téléchargerez respectivement info.html et about.html à partir de http://votresite.com et http://mysite.com, en une seule fois.
$ curl -O http://yoursite.com/info.html -O http://mysite.com/about.html
5. Télécharger des URL à partir d'un fichier
Si vous combinez curl avec xargs, vous pouvez télécharger des fichiers à partir d'une liste d'URL dans un fichier.
# xargs -n 1 curl -O <>
6. Utiliser un proxy avec ou sans authentification
Si vous êtes derrière un serveur proxy à l'écoute sur le port 8080 sur proxy.votredomaine.com, faites-le.
# curl -x proxy.yourdomain.com:8080 -U user:password -O http://yourdomain.com/yourfile.tar.gz
où vous pouvez ignorer -U user:password si votre proxy ne nécessite pas d'authentification.
7. Interroger les en-têtes HTTP
Les en-têtes HTTP permettent au serveur Web distant d'envoyer des informations supplémentaires sur lui-même avec la demande réelle. Cela fournit au client des détails sur la façon dont la demande est traitée.
Pour interroger les en-têtes HTTP d'un site Web, procédez comme suit :
# curl -I www.rootadminz.com
8. Faire une requête POST avec des paramètres
La commande suivante enverra les paramètres firstName et lastName, ainsi que leurs valeurs correspondantes, à https://votredomaine.com/info.php.
# curl --data "firstName=John&lastName=Doe' https://yourdomain.com/info.php
Vous pouvez utiliser cette astuce pour simuler le comportement d'un formulaire HTML normal.
9. Télécharger des fichiers à partir d'un serveur FTP avec ou sans authentification
Si un serveur FTP distant attend des connexions à ftp://votreserveurftp, la commande suivante téléchargera votrefichier.tar.gz dans le répertoire de travail actuel.
# curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz
où vous pouvez ignorer -u username:password si le serveur FTP autorise les connexions anonymes.
10. Télécharger des fichiers sur un serveur FTP avec ou sans authentification
Pour télécharger un fichier local nommé mylocalfile.tar.gz sur ftp://yourftpserver à l'aide de curl, procédez comme suit :
# curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver
11. Spécifiez l'agent utilisateur
L'agent utilisateur fait partie des informations envoyées avec une requête HTTP. Cela indique quel navigateur le client a utilisé pour faire la demande. Voyons ce que notre version actuelle de curl utilise par défaut, et changeons-le plus tard en « Je suis un nouveau navigateur Web » :
# curl -I http://localhost --user-agent "I am a new web browser'
12. Stocker les cookies du site Web
Vous voulez voir quels cookies sont téléchargés sur votre ordinateur lorsque vous naviguez sur https://www.cnn.com ? Utilisez la commande suivante pour les enregistrer dans cnncookies.txt. Vous pouvez ensuite utiliser la commande cat pour afficher le fichier.
# curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O
13. Envoyer des cookies de site Web
Vous pouvez utiliser les cookies récupérés dans le dernier conseil lors de demandes ultérieures sur le même site.
# curl --cookie cnncookies.txt https://www.cnn.com
14. Modifier la résolution de nom
Si vous êtes un développeur Web et que vous souhaitez tester une version locale de votredomaine.com avant de la mettre en ligne, vous pouvez faire en sorte que curl résolve http://www.votredomaine.com à votre hôte local comme suit :
# curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/
Ainsi, la requête à http://www.votredomaine.com indiquera à curl de demander le site à localhost au lieu d'utiliser DNS ou le fichier /etc/hosts.
15. Limiter le taux de téléchargement
Pour empêcher curl d'arroser votre bande passante, vous pouvez limiter le taux de téléchargement à 100 Ko/s comme suit.
# curl --limit-rate 100K http://yourdomain.com/yourfile.tar.gz -O
Aujourd'hui, nous avons appris ce qu'est Curl et comment utiliser la commande Curl sous Linux.