Skip to content

Flag di curl spiegati

I flag di curl usati ogni giorno, raggruppati per attività: formare la richiesta, impostare gli header, autenticarsi, presentare un'identità, controllare l'output, seguire i redirect, regolare la connessione ed effettuare il debug. Ogni riga abbina il flag a un'invocazione realistica.

curl invia una richiesta HTTP e stampa il corpo della risposta. La maggior parte della sua potenza sta nei flag: scelgono il metodo, allegano header e dati, gestiscono l'autenticazione e decidono cosa viene stampato. La forma lunga è mostrata dove è più chiara; la forma breve è la lettera singola. Metti gli URL tra virgolette perché la shell non si mangi la query string.

Tabella di riferimento · 54 voci
54 of 54 rows
Forma della richiesta
Imposta il metodo HTTP.curl -X POST https://api.test
Aggiunge un header di richiesta.curl -H "Accept: application/json" URL
Invia un body (imposta POST e un content type predefinito).curl -d "name=Ada" URL
Accoda i valori di -d come query params su una GET.curl -G -d "q=hi" URL
Invia dati multipart di form (upload di file).curl -F "file=@photo.png" URL
Invia dati di form con URL encoding applicato.curl --data-urlencode "name=Ada Lovelace" URL
Carica un file con PUT.curl -T big.zip URL
Aggiunge l'upload al file remoto invece di sostituirlo.curl -a -T log.txt ftp://server.test/logs/log.txt
JSON e API
Invia JSON con il content type corretto.curl -H "Content-Type: application/json" -d '{"a":1}' URL
Invia il contenuto di un file come body.curl -d @body.json URL
Invia JSON senza impostare gli header a mano (curl 7.82+).curl --json '{"a":1}' URL
Autenticazione
Autenticazione HTTP Basic con utente e password.curl -u ada:s3cr3t URL
Invia un token bearer OAuth.curl --oauth2-bearer TOKEN URL
Invia a mano qualsiasi schema di token.curl -H "Authorization: Bearer TOKEN" URL
Presenta un certificato client e la sua chiave per il TLS reciproco.curl --cert client.pem --key key.pem URL
Verifica il server rispetto a un singolo file bundle di CA.curl --cacert ca.pem URL
Verifica il server rispetto a una directory di CA.curl --capath /etc/ssl/certs URL
Invia la richiesta attraverso un proxy.curl -x http://proxy.test:8080 URL
Salta la verifica TLS solo per il salto verso il proxy.curl -x https://proxy.test:8443 --proxy-insecure URL
Richiede TLS 1.3 come versione minima.curl --tlsv1.3 URL
Identità
Invia una stringa User-Agent personalizzata.curl -A "Mozilla/5.0" URL
Invia un header Referer.curl -e https://example.com/page URL
Invia cookie insieme alla richiesta.curl -b "session=abc123" URL
Salva i cookie di risposta in un file.curl -c cookies.txt URL
Output
Scrive il body su un file.curl -o page.html URL
Salva il body usando il nome file remoto.curl -O https://site/file.tgz
Stampa gli header di risposta sopra il body.curl -i URL
Recupera solo gli header (invia HEAD).curl -I URL
Nasconde l'indicatore di avanzamento e gli errori.curl -s URL
Stampa una stringa di formato dopo il body (tempi, stato).curl -w "%{http_code}\n" -o /dev/null URL
Esce con codice non zero sugli errori HTTP e salta il body d'errore.curl -f URL
Esce con codice non zero sugli errori HTTP ma stampa comunque il body.curl --fail-with-body URL
Assegna al file salvato il nome preso dall'header Content-Disposition.curl -OJ URL
Riprende un trasferimento interrotto dal punto in cui si era fermato.curl -C - -O URL
Mostra una barra di avanzamento al posto dell'indicatore predefinito.curl -# -O URL
Stampa gli errori anche in esecuzione silenziosa.curl -sS URL
Scrive gli header di risposta su un file.curl -D headers.txt URL
Richiede una risposta compressa e la decodifica.curl --compressed URL
Crea le directory mancanti nel percorso -o.curl -o cache/api/data.json --create-dirs URL
Redirect e connessione
Segue i redirect 3xx.curl -L URL
Secondi massimi di attesa per la connessione TCP.curl --connect-timeout 5 URL
Secondi massimi per l'intera richiesta.curl --max-time 30 URL
Salta la verifica del certificato TLS.curl -k https://self-signed.test
Riprova gli errori transitori fino a N volte.curl --retry 3 URL
Riprova su qualsiasi errore, non solo quelli transitori.curl --retry 3 --retry-all-errors URL
Forza la connessione su IPv4 o IPv6.curl -4 URL
Mappa host e porta su un indirizzo, bypassando il DNS.curl --resolve api.test:443:127.0.0.1 https://api.test
Lega il trasferimento a un'interfaccia di rete o a un indirizzo.curl --interface eth0 URL
Trasferisce più URL contemporaneamente.curl -Z URL1 URL2
Usa HTTP/2 o HTTP/3 per il trasferimento.curl --http3 URL
Trasmette il body man mano che arriva invece di accumularlo in un buffer.curl -N URL
Legge ulteriori flag da un file di configurazione.curl -K flags.cfg URL
Debug
Stampa l'intero scambio di richiesta e risposta.curl -v URL
Hex-dump di tutto ciò che viene inviato e ricevuto.curl --trace - URL