Table of contents

cURL

Options utiles

-o <fichier> écrire les données reçues dans le fichier
-A <chaîne> se présenter avec le User-Agent auprès du serveur
-D <fichier> écrire les en-têtes HTTP de la réponse dans le fichier (“-” pour les afficher sur la sortie standard)
-I effectuer une requête de type HEAD et afficher les en-têtes
-L suivre les redirections HTTP
--fail retourner une erreur si le code HTTP de la réponse correspond à une erreur

Pense-bête

Fournir un cookie avec une requête HTTP

curl -b "cle=valeur; expires=Sun, 20-Feb-2011 04:00:24 GMT; path=/; domain=.monsite.fr" http://www.monsite.fr

Obtenir des statistiques sur la ressource téléchargée

cURL permet via l'option -w (write-out) d'afficher des statistiques relatives à l'exécution d'une requête, telles que la décomposition des durées des étapes du transfert (résolution DNS, connexion TCP, réception de la réponse etc) :

curl -w "
--
http_code=%{http_code}
time_namelookup=%{time_namelookup}
http_connect=%{http_connect}
time_pretransfer=%{time_pretransfer}
time_starttransfer=%{time_starttransfer}
time_total=%{time_total}
size_download=%{size_download}" http://www.wikipedia.org/

Vous trouverez la liste exhaustive des variables dans le man(1) curl, dans la section relative à l'option.

Gestion simple de l'authentification HTTP/FTP avec netrc

Bien qu'il soit possible d'utiliser ponctuellement la méthode “embarquée” pour accéder à des ressources protégées par une authentification (type http://bobkelso:25cm@www.monsite.fr/prive/), il est des cas où ce n'est pas possible —̣ ou tout bonnement pas souhaitable (visibilité du mot de passe en clair sur la ligne de commande sur un serveur multi-utilisateurs, par exemple). Aussi, il est recommandé se baser sur les infos de connexions renseignées dans un fichier $HOME/.netrc accessible seulement par soi :

machine www.monsite.fr login bobkelso password 25cm

Pour prendre en compte le fichier .netrc lors d'une requête avec cURL, il faut utiliser l'option -n (--netrc) :

curl -n http://www.monsite.fr/prive/

man netrc