From ce5340319092b8e661737a0b2e8768092b875a43 Mon Sep 17 00:00:00 2001 From: Jeremy Lecour Date: Fri, 22 Dec 2023 09:30:22 +0100 Subject: [PATCH] HowtoCurl : ajout d'options longues --- HowtocURL.md | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/HowtocURL.md b/HowtocURL.md index 2ea64059..d7b8360a 100644 --- a/HowtocURL.md +++ b/HowtocURL.md @@ -31,44 +31,44 @@ $ curl -I www.example.com Pour enregistrer la ressource dans un fichier portant le même nom, utiliser l'option `-O` (ou `--remote-name`) : ~~~ -$ curl -O https://www.example.com/page.html +$ curl --remote-name https://www.example.com/page.html ~~~ Dans le cas d'un protocole s'appuyant sur SSL/TLS, pour ne pas vérifier la validité du certificat on ajoute l'option `-k` (ou `--insecure`) : ~~~ -$ curl -k https://www.example.com/ +$ curl --insecure https://www.example.com/ ~~~ Par défaut, curl ne suit pas les redirections HTTP (follow), il faut l'option `-L` (ou `--location`) : ~~~ -$ curl -L http://www.example.com +$ curl --location http://www.example.com ~~~ Pour spécifier un User-Agent, utiliser l'option `-A` (ou `--user-agent`) : ~~~ -$ curl -A "Mozilla/5.0 (compatible; evolix; http://evolix.com)" http://example.com +$ curl --user-agent "Mozilla/5.0 (compatible; evolix; http://evolix.com)" http://example.com ~~~ Plus généralement, pour spécifier un en-tête HTTP utiliser l'option `-H` (ou `--header`) : ~~~ -$ curl http://www.example.com -H 'Accept: text/plain' -$ curl -H 'Accept-Language: en' https://example.com +$ curl http://www.example.com --header 'Accept: text/plain' +$ curl --header 'Accept-Language: en' https://example.com ~~~ Pour envoyer un cookie dans la requête, utiliser l'option `-b` (ou `--cookie`) : ~~~ -$ curl http://www.example.com -b 'key=value' +$ curl http://www.example.com --cookie 'key=value' ~~~ -Pour l'utilisation d'un proxy : +Pour l'utilisation d'un proxy, utiliser l'option `-x` (ou `--proxy`) : ~~~ -$ curl -x http://localhost:8123 http://www.example.com +$ curl --proxy http://localhost:8123 http://www.example.com ~~~ @@ -80,7 +80,7 @@ L'astuce classique est de modifier le fichier HOSTS (`/etc/hosts` sous Linux et Première astuce possible, modifier l'en-tête `Host` : ~~~ -$ curl http://192.0.2.1:8080/foo/bar -H 'Host: www.example.com' +$ curl http://192.0.2.1:8080/foo/bar --header 'Host: www.example.com' ~~~ L'inconvénient est qu'il faut modifier l'URL pour mettre l'adresse IP (ce qui ne permet pas de faire des copier/coller facilement) et que cela ne gère par le SNI (dans le cas de la couche SSL/TLS). @@ -97,7 +97,7 @@ $ curl --resolve www.example.com:443:192.0.2.1 https://www.example.com/foo/bar Pour envoyer une authentification HTTP, préciser l'option `-u` (ou `--user`) : ~~~ -$ curl -u jdoe:PASSWORD https://www.example.com +$ curl --user jdoe:PASSWORD https://www.example.com ~~~ Pour spécifier la méthode HTTP POST/PUT/DELETE (par défaut GET), cela se fait avec l'option `-X` (ou `--request`) : @@ -181,15 +181,15 @@ $ curl -XPUT 'http://localhost:9200/_snapshot/foo' --json '{"foo": "bar"}' Via un fichier : ~~~ -$ curl -XPUT 'http://localhost:9200/_snapshot/foo' -d @/path/to/file +$ curl -XPUT 'http://localhost:9200/_snapshot/foo' --data @/path/to/file ~~~ ### Version compressée -Pour obtenir le contenu gzipé (avec un en-tête HTTP forcé) : +Pour obtenir le contenu _gzipé_ (avec un en-tête HTTP forcé) : ~~~ -$ curl www.example.com -H 'Accept-Encoding:gzip, deflate' +$ curl www.example.com --header 'Accept-Encoding:gzip, deflate' ~~~ ### If-(M|Unm)odified-Since : contrainte sur la date de modification @@ -238,10 +238,10 @@ timelookup: %{time_namelookup}\n time_total: %{time_total}\n ~~~ -Puis faire une requete curl, avec l'option -w, pour utiliser ce fichier de format : +Puis faire une requête curl, avec l'option `-w` ou `--write-out`, pour utiliser ce fichier de format : ~~~ -curl -w "@curl-time.txt" -o /dev/null -s "https://www.example.com/" +curl --write-out "@curl-time.txt" --remote-name /dev/null -s "https://www.example.com/" ~~~ ## Autres protocoles @@ -265,7 +265,7 @@ $ curl --url "imaps://mail.example.com" --user "bar@example.com:password" Récupérer le fichier Debian.iso via FTP : ~~~ -$ curl -u jdoe:PASSWORD -O ftp://ftp.example.com/foo/bar/Debian.iso +$ curl --user jdoe:PASSWORD --remote-name ftp://ftp.example.com/foo/bar/Debian.iso ~~~ Lister le contenu d'un dossier : @@ -277,9 +277,9 @@ $ curl ftp://ftp.example.com/foo/bar/ Envoyer des fichiers : ~~~ -$ curl -u jdoe:PASSWORD -T fichier ftp://ftp.example.com/ +$ curl --user jdoe:PASSWORD --upload-file fichier ftp://ftp.example.com/ -$ curl -u jdoe:PASSWORD -T "{fichier1,fichier2}" ftp://ftp.example.com/ +$ curl --user jdoe:PASSWORD --upload-file "{fichier1,fichier2}" ftp://ftp.example.com/ ~~~ ## FAQ @@ -302,16 +302,16 @@ On désactive alors le buffer de "curl" avec l'option `-N` (ou `--no-buffer`) af Selon la version de l'OS où de la clé DH qui a été généré, il se peut qu'on ai une erreur "SSL routines:tls_process_ske_dhe:dh key too small" en faisant une requêtes curl. -Si vous souhaitez bypasser la vérification clé DH on peu utilisé l'option --cipher comme ceci : +Si vous souhaitez _bypasser_ la vérification clé DH on peu utiliser l'option `--cipher` comme ceci : ~~~ # curl --ciphers 'DEFAULT:!DH' ~~~ -On peux également utilisé l'option --cipher pour désactivé d'autres cipher lors de la requetes curl, ou de la limité seulement a certains cipher par exemple : +On peux également utilisé l'option `--cipher` pour désactivé d'autres cipher lors de la requêtes curl, ou de la limité seulement a certains cipher par exemple : ~~~ # curl --ciphers 'ECDHE-RSA-AES128-GCM-SHA256' ~~~ -ou rajouter l'option `--ciphers ECDHE-RSA-AES128-GCM-SHA256` dans le fichier `.curlrc` \ No newline at end of file +ou rajouter l'option `--ciphers ECDHE-RSA-AES128-GCM-SHA256` dans le fichier `.curlrc`