A quoi sert Curl ?

cURL (Client URL Request Library) est un outil en ligne de commande auquel s’ajoute une bibliothèque permettant d’effectuer des requêtes d’URL sur divers protocoles.

Présentation

La fonction principale de cURL est de télécharger des éléments à partir d’URL.
Dans le cas où votre système Linux ne dispose pas de l’outil, il s’installe à partir de la commande suivante :

apt-get install curl

Le nombre de protocole supporté par cURL étant important (DICT, file, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet et TFTP), nous allons apprivoiser cet outil à partir des utilisations les plus courantes comme le simple téléchargement :

### Requête HTTP par méthode GET
curl http://www.domaine.com:80/fichier.ext

### Download d'un fichier
curl -O www.domaine.com/image.png
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13441  100 13441    0     0   925k      0 --:--:-- --:--:-- --:--:-- 1093k

Paramètre permettant aussi de cumuler les requêtes (Lettre O majuscule).

Paramètre permettant de reprendre un téléchargement interrompu (Attention à respecter la synthaxe -C – ).

Paramètre permettant de limiter la bande passante du téléchargement.

Paramètre en cas d’authentification d’accès à l’URL nécessaire.


Utilisation de cURL

Dans l’utilisation de cURL, il est possible d’effectuer diverses action via des paramètres fournis comme le téléchargement conditionnel avec le paramètre -z :

### Download si le fichier a été modifié après le 10 Juin
curl -z 10-Jun-17 http://www.domaine.com/fichier.ext

### Download si le fichier a été modifié avant le 10 Juin
curl -z -10-Jun-17 http://www.domaine.com/fichier.ext

Le fichier téléchargé par défaut est en affichage brut sauf si on lui précise des paramètres de sorties comme -O majuscule ou -o minusucle :

### Download du fichier en conservant le nom d'origine
curl -O http://www.domaine.com/fichier_internet.ext

### Download du fichier en le renommant
curl -o fichier_local.ext http://www.domaine.com/fichier_internet.ext

Il est également possible d’intégrer des chaines de caractères afin d’effectuer des requêtes multiples :

### Download des 26 fichiers fichier_a.ext à fichier_a.ext
curl -O http://www.domaine.com/fichier_[a-z].txt

### Download des 10 fichiers fichier_1.ext à fichier_10.ext
curl -O http://www.domaine.com/fichier[1-10].txt

Utilisation FTP avec Curl

Le téléchargement de fichier via le protocole FTP étant courant, il fonctionne aussi avec cURL :

### Upload
curl -u user:password -T /home/root/fichier.ext -O ftp://domaine.com/

### Download
curl -u user:password -O ftp://domaine.com/fichier.ext

Paramètre pour spécifier une authentification.