cURL est un outil de ligne de commande pour obtenir ou envoyer des données à l’aide de la syntaxe URL.
Si vous travaillez en tant que développeur ou dans la fonction de support, vous devez être conscient de l’utilisation de la commande cURL pour dépanner les applications Web. cURL est un utilitaire multiplateforme que vous pouvez utiliser sous Windows, MAC et UNIX.
Voici quelques-unes des syntaxes les plus utilisées avec un exemple pour vous aider.
Table des matières
Vérifiez si vous pouvez vous connecter à l’URL
Si vous travaillez sur un système UNIX et que vous essayez de vous connecter à l’URL externe, la première chose à faire est de vérifier si vous pouvez accéder à l’URL via curl.
curl votreurl.com
Il ne lancera aucune sortie. Cependant, si le serveur ne peut pas se connecter, vous obtiendrez des erreurs telles que Impossible de résoudre l’hôte.
[[email protected] tmp]# curl helloitdoesntexist.com curl: (6) Could not resolve host: helloitdoesntexist.com; Unknown error [[email protected] tmp]#
Enregistrer la sortie URL/URI dans un fichier
Si vous devez enregistrer le contenu de l’URL ou de l’URI dans un fichier spécifique, vous pouvez utiliser la syntaxe suivante
curl https://yoururl.com > yoururl.html
ex:
[[email protected] tmp]# curl https://gf.dev > /tmp/gfhtml % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 18557 0 18557 0 0 72565 0 --:--:-- --:--:-- --:--:-- 72772 [[email protected] tmp]#
L’exemple ci-dessus enregistrera tout le contenu de gf.dev dans /tmp/gf.html
Afficher l’en-tête de la demande et de la réponse
Si vous rencontrez des problèmes et souhaitez valider, vous obtenez l’en-tête de demande et de réponse attendu.
curl -v yoururl.com
Ex:
[[email protected] tmp]# curl -v https://toptips.fr.com * About to connect() to toptips.fr.com port 443 (#0) * Trying 104.25.134.107... * Connected to toptips.fr.com (104.25.134.107) port 443 (#0) * Initializing NSS with certpath: sql:/etc/pki/nssdb * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * SSL connection using TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 * Server certificate: * subject: CN=ssl371609.cloudflaressl.com,OU=PositiveSSL Multi-Domain,OU=Domain Control Validated * start date: Nov 07 00:00:00 2019 GMT * expire date: May 15 23:59:59 2020 GMT * common name: ssl371609.cloudflaressl.com * issuer: CN=COMODO ECC Domain Validation Secure Server CA 2,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB > GET / HTTP/1.1 > User-Agent: curl/7.29.0 > Host: toptips.fr.com > Accept: */* > < HTTP/1.1 200 OK < Date: Sat, 09 Nov 2019 19:41:37 GMT < Content-Type: text/html; charset=UTF-8 < Transfer-Encoding: chunked < Connection: keep-alive < Set-Cookie: __cfduid=d2ce6cd359ebc0b6eb5ff3a454ed042021573328497; expires=Sun, 08-Nov-20 19:41:37 GMT; path=/; domain=.toptips.fr.com; HttpOnly; Secure < Vary: Accept-Encoding < Link: <https://toptips.fr.com/wp-json/>; rel="https://api.w.org/" < Link: <https://toptips.fr.com/>; rel=shortlink < X-SRCache-Fetch-Status: HIT < X-SRCache-Store-Status: BYPASS < X-Frame-Options: SAMEORIGIN < X-Powered-By: EasyEngine v4.0.12 < Via: 1.1 google < CF-Cache-Status: DYNAMIC < Strict-Transport-Security: max-age=15552000; preload < X-Content-Type-Options: nosniff < Alt-Svc: h3-23=":443"; ma=86400 < Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" < Server: cloudflare < CF-RAY: 533243e4bcd4bbf4-LHR <
Télécharger à un taux limité
Si vous travaillez sur l’optimisation et souhaitez voir combien de temps cela prend pour télécharger à une vitesse particulière, vous pouvez :-
curl –-limit-rate 2000B
Ex:
curl –-limit-rate 2000B https://gf.dev
Utiliser un proxy pour se connecter
Très pratique si vous travaillez sur le serveur DMZ où vous devez vous connecter au monde extérieur à l’aide d’un proxy.
curl --proxy yourproxy:port https://yoururl.com
Vous pouvez utiliser curl en insérant un en-tête avec vos données pour tester ou résoudre le problème particulier. Voyons l’exemple suivant pour demander avec Content-Type.
curl --header 'Content-Type: application/json' http://yoururl.com
En faisant ci-dessus, vous demandez à curl de transmettre Content-Type en tant qu’application/json dans l’en-tête de la requête.
Si vous effectuez un dépannage et souhaitez vérifier rapidement l’en-tête de réponse, vous pouvez utiliser la syntaxe suivante.
curl --head http://yoururl.com
Ex:
[[email protected] tmp]# curl --head https://chandan.io HTTP/1.1 200 OK Date: Sat, 09 Nov 2019 19:51:23 GMT Content-Type: text/html Connection: keep-alive Set-Cookie: __cfduid=d3cb2c7b8e566ad99c870b0af12b0f1eb1573329083; expires=Sun, 08-Nov-20 19:51:23 GMT; path=/; domain=.chandan.io; HttpOnly X-GUploader-UploadID: AEnB2Uo96JhvJmR2zYUL-Ndh2ta3UD_ykQAB5C7O8cjZQhCf-GxHQ0MsodSzRnl3guSN3ywAYNjtWcPXfwDXjLg3bQ-P5vQMOA Expires: Sat, 09 Nov 2019 20:51:23 GMT Cache-Control: public, max-age=3600 Last-Modified: Mon, 06 Aug 2018 10:45:47 GMT x-goog-generation: 1533552347482034 x-goog-metageneration: 1 x-goog-stored-content-encoding: identity x-goog-stored-content-length: 24620 x-goog-hash: crc32c=DpDPAQ== x-goog-hash: md5=cIP/3rusdUx12Zla1kf1yA== x-goog-storage-class: MULTI_REGIONAL Accept-Ranges: bytes CF-Cache-Status: DYNAMIC Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" Server: cloudflare CF-RAY: 53325234dc2fbb9a-LHR [[email protected] tmp]#
Connectez l’URL HTTPS/SSL et ignorez toute erreur de certificat SSL
Lorsque vous essayez d’accéder à l’URL sécurisée du certificat SSL/TLS et que le certificat est incorrect ou que le CN ne correspond pas, vous obtenez l’erreur suivante.
curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.
Bonne nouvelle, vous pouvez demander à cURL d’ignorer l’erreur de certificat avec l’indicateur –insecure.
curl --insecure https://yoururl.com
Connectez-vous en utilisant un protocole spécifique (SSL/TLS)
Très pratique pour tester si une URL particulière peut établir une liaison via un protocole SSL/TLS spécifique.
Pour se connecter à l’aide de SSL v3
curl --sslv3 https://yoururl.com
et pour différentes versions de TLS
curl --tlsv1 https://example.com curl --tlsv1.0 https://example.com curl --tlsv1.1 https://example.com curl --tlsv1.2 https://example.com curl --tlsv1.3 https://example.com
Télécharger le fichier depuis le serveur FTP
Vous pouvez également utiliser curl pour télécharger le fichier en spécifiant votre nom d’utilisateur et votre mot de passe.
curl -u user:password -O ftp://ftpurl/style.css
Vous pouvez toujours utiliser « -v » avec n’importe quelle syntaxe pour imprimer en mode détaillé.
L’en-tête d’hôte est utile pour tester l’URL cible sur IP lorsque le contenu demandé n’est disponible que lorsque l’en-tête d’hôte correspond. Ou, si vous souhaitez tester l’application à l’aide de l’adresse IP/URL de l’équilibreur de charge.
curl --header 'Host: targetapplication.com' https://192.0.0.1:8080/
Que diriez-vous d’utiliser cURL en ligne ?
Oui, c’est possible avec les outils suivants. Vous pouvez exécuter cURL à distance.
CURL en ligne – un outil léger pour récupérer l’URL en ligne et la possibilité d’ajouter les options suivantes.
--connect-timeout --cookie --data --header --head --location --max-time --proxy --request --user --url --user-agent
générateur de ligne de commande cURL – celui-ci est différent. Il vous aide à créer la commande curl où vous pouvez entrer des informations dans une belle interface utilisateur, et en bas, vous obtiendrez la commande cURL.
cURL est un utilitaire utile pour résoudre un problème de connectivité en temps réel, et j’espère que ce qui précède vous aidera. Si vous cherchez à en savoir plus, je vous recommande Principes de base de la ligne de commande Linux Cours en ligne.