Curl : commandes de bases
Curl est un outil qui permet de faire des requêtes à un serveur via un des protocoles supportés. Parmi ces protocoles, on retrouve le protocole HTTP, et c’est celui ci qui va nous intéresser aujourd’hui. Si vous souhaitez savoir quels sont les protocoles supportés, un `man curl` vous donnera rapidement l’information.
Passons à la pratique ! Voici une commande de base :
curl http://localhost:8080/document.txt
Cette commande permet de faire une requête HTTP avec la méthode `GET` sur l’url décrite :
- `http://` : on utilise le protocole HTTP (ici on pourrait ne pas le mettre, le protocole http étant utilisé par défaut) sur l’url
- `localhost:8080` : le nom d’hôte et le port sur lesquels faire la requête
- `document.txt` : le document à atteindre sur le serveur
Au final, derrière tout ça est effectué une requête `HTTP GET` qui va récupérer le fichier `document.txt` situé sur le serveur et l’afficher sur la sortie standard.
Il se trouve que j’ai besoin d’être authentifié pour accéder au fichier. Mon authentification utilisant la méthode Basic, je tape donc :
curl http://localhost:8080/document.txt --user user@alinto.int:password
Ici, curl va rajouter le header `Authorization` à notre requête `GET`.
Cependant, vous pouvez être amené à faire des requêtes autres que `GET`. Une simple option vous permet de faire cela.
curl -X DELETE http://localhost:8080/document.txt
La requête HTTP sera donc une requête `DELETE` qui supprimera le fichier document.txt du serveur. Vous pouvez aussi utiliser `PUT`, et `POST`, suivant les capacités de votre serveur, bien d’autres (par exemple, utilisant WebDAV, nous pouvons faire des requètes PROPFIND ou MKCOL) !
Dans certains cas, vous pouvez avoir envie de changer certaines parties du header de votre requête HTTP. Pour cela, vous pouvez taper quelque chose du type :
curl --header "User-Agent: newUserAgent" http://localhost:8080/user@alinto.int/files/
Dans cet exemple, le `User-Agent` de la requête deviendra `newUserAgent`.
Enfin, dernier cas que vous pourriez avoir envie de faire : modifier le corps de la requête HTTP. Pour cela, rien de plus simple :
curl -d "Le nouveau corps de la requête" http://localhost:8080/files
Et voila, vous avez maintenant les bases pour vous amuser avec curl ! Et pour aller plus loin : `man curl` !!