Geekflare est soutenu par son public. Nous pouvons percevoir des commissions d'affiliation sur les liens d'achat présents sur ce site.
En Linux et Mise en réseau Dernière mise à jour : 24 septembre 2023
Partager sur :
Invicti Web Application Security Scanner - la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

cURL est un outil de ligne de commande permettant d'obtenir ou d'envoyer des données à l'aide de la syntaxe URL.

Si vous travaillez en tant que développeur ou dans le domaine de l'assistance, vous devez connaître l'utilisation des commandes cURL verser 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, accompagnées d'un exemple pour vous aider.

Vérifiez que vous pouvez vous connecter à l'URL

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

curl yoururl.com

Vous n'obtiendrez aucun résultat. Cependant, si le serveur ne peut pas se connecter, vous obtiendrez des erreurs telles que could not resolve the host.

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

Sauvegarder l'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 :

[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 sauvegardera tout le contenu de gf.dev dans /tmp/gf.html

Afficher les en-têtes de requête et de réponse

Si vous rencontrez des problèmes et souhaitez vérifier que vous obtenez bien les en-têtes de requête et de réponse attendues.

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
* Connexion SSL utilisant TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
* Certificat du serveur :
* 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
<

Télécharger à un taux limite

Si vous travaillez sur l'optimisation et que vous souhaitez voir combien de temps prend le téléchargement à 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 un serveur DMZ et que vous devez vous connecter au monde extérieur à l'aide d'un proxy.

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

URL de test avec injection d'en-tête

Vous pouvez utiliser curl en insérant un en-tête avec vos données pour tester ou résoudre un problème particulier. Voyons l'exemple suivant pour une requête avec Content-Type.

curl --header 'Content-Type : application/json' http://yoururl.com

En faisant cela, vous demandez à curl de passer Content-Type comme application/json dans l'en-tête de la requête.

Afficher uniquement l'en-tête de la réponse

Si vous effectuez un dépannage et que vous 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]#

Connectez-vous à une URL HTTPS/SSL et ignorez toute erreur de certificat SSL

Lorsque vous essayez d'accéder à une URL sécurisée par un certificat SSL/TLS et que le certificat n'est pas le bon ou que le 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 l'option --insecure.

curl --insecure https://yoururl.com

Se connecter en utilisant un protocole spécifique (SSL/TLS)

Il est très pratique de tester si une URL particulière peut se connecter via un protocole SSL/TLS spécifique.

Pour se connecter en utilisant 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 un fichier à partir d'un 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 verbeux.

Utilisation de l'en-tête de l'hôte

L'en-tête host est utile pour tester l'URL cible sur IP lorsque le contenu demandé n'est disponible que si l'en-tête host correspond. Ou, si vous voulez tester l'application en utilisant l'IP/URL de l'équilibreur de charge.

curl --header 'Host : targetapplication.com' https://192.0.0.1:8080/

Et si vous utilisez cURL en ligne ?

Oui, c'est possible avec les outils suivants. Vous pouvez exécuter cURL à distance.

Online CURL - 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
 

constructeur de ligne de commande cURL - Celui-ci est différent. Il vous aide à construire la commande curl où vous pouvez entrer des informations dans une interface agréable, et à la fin, vous obtiendrez la commande cURL.

curl-builder

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 le cours en ligne Les bases de la ligne de commande Linux.

  • Chandan Kumar
    Auteur
    Chandan Kumar est le fondateur de Geekflare. Il a aidé des millions de personnes à exceller dans le domaine numérique. Passionné de technologie, il s'est donné pour mission d'explorer le monde et d'amplifier la croissance des professionnels et des entreprises.
Merci à nos sponsors
D'autres bonnes lectures sur Linux
Alimentez votre entreprise
Quelques outils et services pour aider votre entreprise à se développer.
  • Invicti utilise le Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, search engine crawler, et tout ce dont vous avez besoin pour collecter des données web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation tout-en-un qui vous aide à gérer vos projets, vos tâches, votre travail, vos ventes, votre CRM, vos opérations, vos flux de travail et bien plus encore.
    Essayez le lundi
  • Intruder est un scanner de vulnérabilité en ligne qui détecte les faiblesses de votre infrastructure en matière de cybersécurité, afin d'éviter des violations de données coûteuses.
    Essayer l'intrus