cURL est un outil en 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 Utilisation de la commande cURL à 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.

Verify if you can connect to the URL

Si vous travaillez sur un système UNIX et essayez de connecter l'URL externe, la première chose à faire est de vérifier si vous pouvez accéder à l'URL via curl.

curl yoururl.com

Il ne lancera aucune sortie. Cependant, si le serveur ne peut pas se connecter, vous obtiendrez des erreurs telles que la résolution de l'hôte impossible.

[root@gf-lab tmp]# curl helloitdoesntexist.com
curl: (6) Could not resolve host: helloitdoesntexist.com; Unknown error
[root@gf-lab tmp]#

Save URL/URI output to file

Si vous devez enregistrer le URL ou URI contenu dans un fichier spécifique, vous pouvez utiliser la syntaxe suivante

curl https://yoururl.com > yoururl.html

ex:

[root@gf-lab 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
[root@gf-lab tmp]#

L'exemple ci-dessus enregistrera tout le contenu de gf.dev dans /tmp/gf.html

Show request and response header

Si vous rencontrez des problèmes et que vous souhaitez valider, vous obtenez l'en-tête de demande et de réponse attendu.

curl -v yoururl.com

Ex:

[root@gf-lab tmp]# curl -v https://geekflare.com
* About to connect() to geekflare.com port 443 (#0)
*   Trying 104.25.134.107...
* Connected to geekflare.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: geekflare.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=.geekflare.com; HttpOnly; Secure
< Vary: Accept-Encoding
< Link: <https://geekflare.com/wp-json/>; rel="https://api.w.org/"
< Link: <https://geekflare.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
<

Download at a limit rate

Si vous travaillez sur l'optimisation et que vous souhaitez voir combien de temps faut-il pour télécharger à une vitesse donnée, vous pouvez: -

curl –-limit-rate 2000B

Ex:

curl –-limit-rate 2000B https://gf.dev

Using a proxy to connect

Très pratique si vous travaillez sur le serveur DMZ où vous devez vous connecter au monde externe à l'aide d'un proxy.

curl --proxy yourproxy:port https://yoururl.com

Test URL with injecting header

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 passer Content-Type en tant qu'application / json dans l'en-tête de la requête.

Display only response header

Si vous effectuez un dépannage et souhaitez vérifier rapidement l'en-tête de la réponse, vous pouvez utiliser la syntaxe suivante.

curl --head http://yoururl.com

Ex:

[root@gf-lab 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

[root@gf-lab tmp]#

Connect HTTPS/SSL URL and ignore any SSL certificate error

Lorsque vous essayez d'accéder à l'URL sécurisée du certificat SSL / TLS et si le certificat est incorrect ou si CN ne correspond pas, vous obtiendrez 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 --insecure drapeau.

curl --insecure https://yoururl.com

Connect using a specific protocol (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 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

Download file from FTP Server

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 verbeux.

Using Host Header

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. Cela vous aide à créer la commande curl où vous pouvez entrer des informations dans une interface utilisateur agréable, et en bas, vous obtiendrez la commande cURL.

constructeur de boucles

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 souhaitez en savoir plus, je vous recommande Bases de la ligne de commande Linux Cours en ligne.