La commande cURL est un outil Linux important, couramment utilisé pour le transfert de données et le dépannage de connexion. cURL est alimenté par libcurl, qui est une bibliothèque gratuite de transfert d'URL côté client.
Approfondissons et apprenons à l'utiliser.
Vérifier la version cURL
Comme avec toute commande Linux, avant de commencer à travailler avec cURL, nous devons nous connecter à notre VPS. Si vous avez besoin d'aide, consultez ce tutoriel sur SSH.
Tout d'abord, vérifions quelle version de cURL est disponible avec la commande suivante :
curl --version
La sortie affichera la version cURL une liste des protocoles pris en charge. Nous pouvons maintenant examiner quelques exemples de commandes cURL
Syntaxe de base de la commande cURL
Apprenons à utiliser les commandes 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 affichera la page Web d'accueil de testdomain.com .
curl testdomain.com
Cela affichera le code source complet de la page d'accueil du domaine. Si aucun protocole n'est spécifié, curl l'interprétera comme HTTP.
Options du fichier de commande cURL
Les commandes cURL peuvent télécharger des fichiers à partir d'un emplacement distant. Vous pouvez le faire de deux manières différentes :
- -O enregistrera le fichier dans le répertoire de travail actuel avec le même nom de fichier que remote.
- -o vous permet de spécifier un nom de fichier ou un emplacement différent
Un exemple de ceci est comme indiqué ci-dessous :
curl -O http://testdomain.com/testfile.tar.gz
La commande ci-dessus l'enregistrera sous testfile.tar.gz .
curl -o newtestfile.tar.gz http://testdomain.com/testfile.tar.gz
La commande ci-dessus l'enregistrera sous le nom newtestfile.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://testdomain.com/testfile.tar.gz
En utilisant cURL, nous pouvons également télécharger plusieurs fichiers, comme indiqué ci-dessous :
curl -O http://testdomain.com/testfile.tar.gz -O http://mydomain.com/myfile.tar.gz
Si vous souhaitez télécharger plusieurs fichiers à partir de plusieurs URL, répertoriez-les tous dans un fichier. Les commandes cURL peuvent être combinées avec xargs pour télécharger les différentes URL.
Par exemple, si nous avons un fichier allUrls.txt qui contient une liste de toutes les URL à télécharger, l'exemple ci-dessous peut être utilisé pour télécharger tous les fichiers.
xargs –n 1 curl -O < allUrls.txt
Commandes cURL pour HTTP
cURL peut également être utilisé lorsqu'il existe un serveur proxy. Si vous êtes derrière un serveur proxy écoutant sur le port 8090 sur sampleproxy.com, téléchargez les fichiers comme indiqué ci-dessous :
curl -x sampleproxy.com:8090 -U username:password -O http:// testdomain.com/testfile.tar.gz
Dans l'exemple ci-dessus, vous pouvez ignorer -U username:password si le proxy ne nécessite pas de méthode d'authentification.
Une requête HTTP typique contiendra toujours un en-tête. L'en-tête HTTP envoie des informations supplémentaires sur le serveur Web distant avec la demande réelle. Bien que les outils de développement d'un navigateur vous permettent de vérifier les informations d'en-tête, vous pouvez les vérifier à l'aide d'une commande cURL.
Vous trouverez ci-dessous un exemple de récupération des informations d'en-tête d'un site Web.
curl -I www.testdomain.com
En utilisant cURL, vous pouvez faire un GET et un POST demande. Un OBTENIR la demande sera la suivante :
curl http://mydomain.com
Un exemple de POST la demande sera comme indiqué ci-dessous :
curl –data “text=Hello” https://myDomain.com/firstPage.jsp
Par ici text=Bonjour est le paramètre de requête POST. Ce comportement serait similaire aux formulaires HTML.
Vous pouvez également spécifier plusieurs méthodes HTTP dans une seule commande cURL. Pour ce faire, utilisez –next option, comme ceci :
curl –data “text=Hello” https://myDomain.com/firstPage.jsp --next https://myDomain.com/displayResult.jsp
Celui-ci 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 sortie est illustré ci-dessous :
“GET / HTTP/1.1” 200 “_” ”curl/7/29/0”
Vous pouvez modifier ces informations d'agent utilisateur par défaut à l'aide de la commande ci-dessous :
curl -I http://mydomain.com –-user-agent “My new Browser”
Maintenant, la sortie modifiée sera :
“GET / HTTP/1.1” 200 “_” ”My new Browser”
cURL pour les cookies
Les commandes cURL peuvent être utilisées pour vérifier quels cookies sont téléchargés sur n'importe quelle URL. Donc, si vous accédez à https://www.samplewebsite.com , vous pouvez alors sortir dans un fichier, enregistrer les cookies et y accéder à l'aide de cat ou d'un éditeur VIM.
Vous trouverez ci-dessous un exemple d'une telle commande :
curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O
De même, si vous avez les cookies dans un fichier, vous pouvez l'envoyer au site Web. Un exemple d'une telle commande est illustré ci-dessous :
curl --cookie Mycookies.txt https://www. samplewebsite.com
cURL pour FTP
La commande cURL prend en charge FTP ! Vous pouvez les utiliser pour télécharger des fichiers depuis un serveur distant.
curl -u username:password -O ftp://sampleftpserver/testfile.tar.gz
Dans la commande ci-dessus, ftp://sampleftpserver 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 username:password -T testfile.tar.gz ftp://sampleftpserver
Encore une fois, nous pouvons ignorer le nom d'utilisateur et le mot de passe pour les connexions FTP anonymes.
Limiter la sortie cURL
Lorsque vous utilisez un cURL, vous ne pouvez pas savoir quelle sera la taille de la sortie. Vous pouvez limiter la bande passante pour vous assurer qu'elle n'est pas limitée par cURL.
La commande ci-dessous limite la bande passante à 100K :
curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O
Conclusion
cURL est une commande puissante et largement utilisée. C'est utile lorsque vous dépendez de la ligne de commande. Il a plusieurs options et prend en charge plusieurs protocoles. C'est une très bonne raison d'apprendre cette commande !
N'oubliez pas que si vous souhaitez apprendre certaines commandes avancées, reportez-vous simplement 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 !