cURL : Guide Complet de l'Outil de Transfert de Données

Gabin P.
Date publication
March 6, 2024
time to read
5 min
cURL : Guide Complet de l'Outil de Transfert de Données

Utilisé par un très grand nombre de logiciels, cURL est un outil plébiscité pour effectuer des transferts de données. Des téléviseurs aux appareils médicaux en passant par les téléphones portables, on le retrouve presque partout. Open source et gratuit, cURL est compatible avec de nombreux protocoles de transfert. En constante évolution, il permet de réaliser un grand nombre d’actions plus ou moins complexes.

Qu’est-ce que cURL ?

cURL est le nom d’un projet de développement logiciel. Ce sigle peut signifier Client for URLs ou encore Client URL Request Library. cURL comprend deux produits distincts qui fonctionnent en collaboration :

  1. Curl : une interface en ligne de commande permettant principalement de réaliser des transferts de données grâce à des URLs ;
  2. Libcurl : la bibliothèque gratuite de transfert d’URL côté client qui alimente curl.

cURL fonctionne sur une majorité de plateformes, y compris Windows, Mac et Linux. Son outil de ligne de commande propose de nombreuses options. Curl offre ainsi à ses utilisateurs la possibilité de traiter une quantité impressionnante de requêtes. En plus d’être compatible avec différents protocoles, cURL supporte les proxies, les cookies ou encore les certificats SSL (ou TLS).

NB : Le projet cURL ne possède pas son propre fichier de certificats ca-bundle.crt. La majorité du temps, curl et libcurl utilisent le magasin de certificats du système d’exploitation utilisé.

Quels protocoles cURL peut-il supporter ?

cURL supporte une grande variété de protocoles. La liste actuelle en comprend près d’une vingtaine :

  1. HTTP(S) ;
  2. FTP(S) ;
  3. IMAP(S) ;
  4. LDAP(S) ;
  5. POP3(S) ;
  6. RTMP(S) ;
  7. SMTP(S) ;
  8. SMB(S) ;
  9. GOPHER(S) ;
  10. DICT ;
  11. FILE ;
  12. MQTT ;
  13. RTSP ;
  14. SCP ;
  15. SFTP ;
  16. TELNET ;
  17. TFTP ;
  18. WS(S).

Pour rappel, l’addition de la lettre S dans le nom d’un protocole signifie qu’on y ajoute une couche de sécurité SSL/TLS. Si on compte ces versions de manière indépendante, on arrive à presque trente protocoles supportés. De plus, plusieurs versions d’un même protocole permettant les transferts de données coexistent parfois. Il est important de noter que cURL est en constante évolution. La liste des protocoles que curl et libcurl supportent est amenée à évoluer au fil du temps.

Comment utiliser cURL ?

L’interface en ligne de commande curl nécessite l’emploi d’une syntaxe assez simple :

curl [options] [URL]

Sans utilisation d’option particulière, curl envoie simplement une requête GET. Si l’exercice paraît simple, il existe en réalité près de 250 options de lignes de commande. Une liste qui continue d’ailleurs de s’allonger avec le temps. Voici trois exemples de lignes de commande basiques à utiliser avec curl :

Obtenir la page principale d’un site :

curl https://www.exemple.com/

Télécharger une page web et la stocker localement dans un fichier :

curl -o nomdufichier.html http://www.exemple.com/

Obtenir une page web depuis un serveur en utilisant le port 8000 :

curl http://www.exemple.com:8000/

Afin de faciliter son utilisation, curl peut lister les options nécessaires pour réaliser une action. Les commandes curl -h et curl –help donnent accès à la liste des options fréquentes. La commande curl -h all permet d’afficher le listing complet de toutes les options existantes.

Qui développe cURL ?

Le chef de projet et développeur principal de cURL est Daniel Stenberg. Ce professionnel suédois est à l’origine de la création de cet outil en 1998. Mais en réalité, cURL est à la fois le changement de nom et le successeur de deux autres projets : httpget et urlget. L’histoire de cURL débute un peu plus tôt, en 1996.

C’est à cette époque que Stenberg reprend la maintenance de httpget, après avoir proposé quelques correctifs à son auteur. Malgré cet historique et la forte influence de Stenberg, cURL reste un projet open source. Son code source est publié sur GitHub et évolue au fil des améliorations apportées. Plusieurs milliers de contributeurs ont déjà participé au développement du logiciel.

Dans cet article :

Voir nos formations