Scheda di riferimento cURL
Un riferimento curl stampabile e ricercabile — metodi HTTP, header, dati e moduli, autenticazione, download, cookie, TLS, proxy e debug. Gratis.
Nozioni di base
12curl https://api.example.com
Invia una richiesta GET e stampa il body
curl -o page.html https://example.com
Salva la risposta in un file con nome
curl -O https://example.com/file.zip
Salva usando il nome del file remoto
curl -i https://example.com
Mostra gli header della risposta più il body
curl -I https://example.com
Recupera solo gli header della risposta (HEAD)
curl -v https://example.com
Output verboso di richiesta/risposta
curl -s https://example.com
Modalità silenziosa, nasconde progresso ed errori
curl -sS https://example.com
Silenzioso ma mostra comunque gli errori
curl -L https://example.com
Segue i redirect HTTP (3xx)
curl https://a.com https://b.com
Richiede più URL in una sola chiamata
curl 'https://x.com/p?[1-5]'
Usa un intervallo numerico per iterare gli URL
curl --version
Stampa la versione e le funzionalità di curl
Metodi HTTP
9curl -X GET https://api.example.com
Invia esplicitamente una richiesta GET
curl -X POST https://api.example.com
Invia una richiesta POST
curl -X PUT https://api.example.com/1
Invia una richiesta PUT per sostituire una risorsa
curl -X PATCH https://api.example.com/1
Invia una richiesta PATCH per aggiornare campi
curl -X DELETE https://api.example.com/1
Invia una richiesta DELETE
curl -I https://api.example.com
Invia una richiesta HEAD per i soli header
curl -X OPTIONS https://api.example.com
Invia una richiesta preflight OPTIONS
curl --head https://api.example.com
Forma estesa di -I per una richiesta HEAD
curl --request POST https://x.com
Forma estesa di -X per impostare il metodo
Header
10curl -H 'Accept: application/json' https://x.com
Aggiunge un singolo header di richiesta
curl -H 'X-Token: abc' -H 'X-Env: dev' https://x.com
Aggiunge più header
curl -H 'Content-Type: application/json' https://x.com
Dichiara il content type del body della richiesta
curl -H 'Authorization: Bearer TOKEN' https://x.com
Invia un header di autorizzazione bearer
curl -H 'Host: example.com' https://1.2.3.4
Sovrascrive l'header Host
curl -H 'Accept-Encoding: gzip' https://x.com
Richiede una risposta compressa con gzip
curl -A 'MyAgent/1.0' https://x.com
Imposta la stringa User-Agent
curl -e 'https://ref.com' https://x.com
Imposta l'header Referer
curl -H 'X-Debug:' https://x.com
Rimuove un header predefinito lasciandolo vuoto
curl --compressed https://x.com
Richiede e decomprime automaticamente la risposta
Invio di dati
11curl -d 'name=Jane&age=30' https://x.com
POST di dati form URL-encoded
curl -d '@payload.json' https://x.com
POST di dati letti da un file
curl --data-urlencode 'q=hello world' https://x.com
POST di un singolo campo URL-encoded
curl --data-binary '@file.bin' https://x.com
POST di byte grezzi senza elaborazione
curl -G --data-urlencode 'q=cats' https://x.com
Aggiunge i dati come query string GET
curl -X POST -H 'Content-Type: application/json' -d '{"name":"Jane"}' https://x.com
POST di un body JSON
curl --json '{"name":"Jane"}' https://x.com
POST JSON impostando automaticamente gli header JSON
curl -F 'name=Jane' https://x.com
Invia un campo form multipart
curl -F 'file=@photo.png' https://x.com
Carica un file come form-data multipart
curl -F 'file=@a.pdf;type=application/pdf' https://x.com
Carica un file con un tipo MIME esplicito
curl -d '' https://x.com
POST con body vuoto
Autenticazione
9curl -u user:pass https://x.com
Autenticazione HTTP basic
curl -u user https://x.com
Auth basic, richiede la password
curl -H 'Authorization: Bearer TOKEN' https://x.com
Invia un header con bearer token
curl --oauth2-bearer TOKEN https://x.com
Invia un bearer token OAuth 2.0
curl --digest -u user:pass https://x.com
Usa l'autenticazione HTTP digest
curl --ntlm -u user:pass https://x.com
Usa l'autenticazione NTLM
curl --netrc https://x.com
Legge le credenziali da ~/.netrc
curl --netrc-file creds https://x.com
Legge le credenziali da un file netrc personalizzato
curl -H 'X-Api-Key: KEY' https://x.com
Invia un header con chiave API
Download e upload
11curl -O https://x.com/file.zip
Scarica usando il nome del file remoto
curl -o out.zip https://x.com/file.zip
Scarica con un nome di file scelto
curl -OL https://x.com/file.zip
Scarica e segue i redirect
curl -C - -O https://x.com/file.zip
Riprende un download parziale
curl --limit-rate 200k -O https://x.com/f
Limita la velocità di trasferimento
curl -r 0-1023 -o part https://x.com/f
Scarica solo un intervallo di byte
curl --retry 3 -O https://x.com/f
Riprova il download in caso di errore
curl -T file.txt ftp://x.com/
Carica un file con PUT/FTP
curl -T file.txt https://x.com/up
Carica un file tramite HTTP PUT
curl --create-dirs -o a/b/f.txt https://x.com
Crea le directory mancanti per l'output
curl -# -O https://x.com/file.zip
Mostra una semplice barra di avanzamento
Cookie
8curl -b 'session=abc123' https://x.com
Invia un cookie inline
curl -b cookies.txt https://x.com
Invia cookie da un file
curl -c cookies.txt https://x.com
Scrive i cookie ricevuti in un jar
curl -b jar.txt -c jar.txt https://x.com
Legge e aggiorna lo stesso cookie jar
curl -b 'a=1; b=2' https://x.com
Invia più cookie contemporaneamente
curl -c - https://x.com
Stampa i cookie ricevuti su stdout
curl --junk-session-cookies -b jar.txt https://x.com
Ignora i cookie di sessione dal jar
curl -L -c jar.txt -b jar.txt https://x.com/login
Mantiene una sessione attraverso i redirect
TLS / SSL
10curl -k https://x.com
Consente connessioni non sicure (salta la verifica del certificato)
curl --cacert ca.pem https://x.com
Verifica con un bundle CA personalizzato
curl --capath /etc/ssl/certs https://x.com
Usa una directory di certificati CA
curl --cert client.pem https://x.com
Invia un certificato client
curl --cert client.pem --key client.key https://x.com
Usa un certificato client e una chiave privata
curl --tlsv1.2 https://x.com
Richiede almeno TLS 1.2
curl --tlsv1.3 https://x.com
Richiede almeno TLS 1.3
curl --tls-max 1.2 https://x.com
Limita la versione TLS massima
curl --ciphers ECDHE-RSA-AES128-GCM-SHA256 https://x.com
Limita i cipher TLS consentiti
curl -vI https://x.com
Ispeziona i dettagli dell'handshake TLS
Proxy
9curl -x http://proxy:8080 https://x.com
Instrada la richiesta attraverso un proxy HTTP
curl --proxy http://proxy:8080 https://x.com
Forma estesa di -x per impostare un proxy
curl -x proxy:8080 -U user:pass https://x.com
Autenticazione al proxy
curl --proxy-user user:pass -x proxy:8080 https://x.com
Forma estesa delle credenziali proxy
curl --socks5 127.0.0.1:1080 https://x.com
Usa un proxy SOCKS5
curl --socks5-hostname 127.0.0.1:1080 https://x.com
Proxy SOCKS5 con risoluzione DNS remota
curl --socks4 127.0.0.1:1080 https://x.com
Usa un proxy SOCKS4
curl --noproxy example.com https://x.com
Ignora il proxy per host specifici
curl -x '' https://x.com
Disabilita qualsiasi proxy configurato
Debug e output
11curl -w '%{http_code}\n' -o /dev/null -s https://x.com
Stampa solo il codice di stato HTTP
curl -w '%{time_total}\n' -o /dev/null -s https://x.com
Stampa il tempo totale di trasferimento
curl -w '@format.txt' https://x.com
Legge il formato write-out da un file
curl -D headers.txt https://x.com
Scarica gli header della risposta su un file
curl -D - -o body.txt https://x.com
Header su stdout, body su file
curl --trace trace.txt https://x.com
Trace esadecimale completo del trasferimento
curl --trace-ascii - https://x.com
Trace ASCII su stdout
curl --trace-time -v https://x.com
Aggiunge timestamp all'output verboso
curl -v https://x.com 2>&1 | less
Scorre il log verboso a pagine
curl -sS -o /dev/null -w '%{size_download}\n' https://x.com
Stampa il numero di byte scaricati
curl --libcurl out.c https://x.com
Genera codice sorgente C libcurl equivalente
Timeout e tentativi
10curl --connect-timeout 5 https://x.com
Limita la fase di connessione in secondi
curl --max-time 30 https://x.com
Limita il tempo dell'intera operazione
curl --retry 3 https://x.com
Riprova in caso di errori transitori
curl --retry 3 --retry-delay 2 https://x.com
Attende tra i tentativi
curl --retry 5 --retry-max-time 60 https://x.com
Limita il tempo totale dedicato ai tentativi
curl --retry-connrefused https://x.com
Riprova anche su connessione rifiutata
curl --retry-all-errors https://x.com
Riprova su qualsiasi errore, non solo transitorio
curl --speed-limit 100 --speed-time 10 https://x.com
Interrompe se troppo lento per una certa durata
curl --keepalive-time 60 https://x.com
Imposta l'intervallo di keep-alive TCP
curl --expect100-timeout 1 https://x.com
Limita l'attesa per un 100-continue
Nessuna voce corrisponde a “:q”.
Hai bisogno di aiuto?
Hai riscontrato un problema con questo strumento? Faccelo sapere.