Cheat sheet di cURL
Comandi utili di cURL con parametri
Ecco una tabella di riferimento per i comandi cURL più utili con i relativi parametri:

L’immagine sopra è generata dal modello AI da testo a immagine Flux.
cURL è uno strumento essenziale da riga di comando per inviare richieste HTTP e trasferire dati. Per una guida completa agli strumenti per sviluppatori, inclusi Git, Docker, VS Code, bash, Terraform, PostgreSQL, GitHub Actions e la gestione dei pacchetti Linux, consulta Strumenti per Sviluppatori: La Guida Completa ai Flussi di Lavoro Moderni.
Uso Base di cURL
- Scaricare un file:
curl http://example.com/file.zip -o file.zip - Scaricare più file:
curl -O URL1 -O URL2 - Seguire i reindirizzamenti:
curl -L http://example.com/file - Mostrare solo gli intestinazioni:
curl -I http://example.com
Autenticazione
- Autenticazione di base:
curl -u username:password http://example.com - Utilizzare il file .netrc:
curl --netrc-file .netrc http://example.com
Metodi HTTP
- Richiesta POST:
curl -X POST -d 'name=value' http://example.com - Richiesta PUT:
curl -X PUT -d @file http://example.com - Metodo personalizzato:
curl -X METHOD http://example.com
Intestazioni e Dati
- Aggiungere un’intestazione personalizzata:
curl -H "X-Header: Value" http://example.com - Inviare dati JSON:
curl -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com - Inviare dati del modulo:
curl -F "key=value" -F "file=@localfile" http://example.com
Opzioni SSL/TLS
- Ignorare la verifica del certificato SSL:
curl -k https://example.com - Utilizzare un certificato client:
curl --cert cert.pem --key key.pem https://example.com
Proxy e Rete
- Utilizzare un proxy:
curl -x proxysever.server.com:PORT http://example.com - Limitare la velocità di download:
curl --limit-rate 1000B -O http://example.com/file
Controllo dell’Output
- Modalità silenziosa:
curl -s http://example.com - Modalità verbosa:
curl -v http://example.com - Scrivere l’output in un file:
curl -o file.html http://example.com - Salvare con il nome del file remoto:
curl -O http://example.com/file.zip
Vari
- Riprendere un download interrotto:
curl -C - -o partial_file.zip http://example.com/file.zip - Impostare un timeout:
curl --connect-timeout 10 http://example.com - Utilizzare un file di configurazione:
curl -K config_file http://example.com
Questa tabella di riferimento copre i comandi cURL più comunemente utilizzati e i loro parametri, fornendo un rapido riferimento per varie operazioni HTTP e trasferimenti di dati.
Comandi cURL Avanzati
Ecco alcuni comandi cURL avanzati per il debug:
-
Output verboso:
curl -v https://example.comQuesto comando fornisce informazioni dettagliate sulla richiesta e sulla risposta, incluse le intestazioni e i dettagli della connessione. -
Dump di traccia completo:
curl --trace - https://example.comQuesto comando genera un hexdump di tutti i dati in entrata e in uscita, offrendo una visione completa di tutta la comunicazione. -
Traccia con timestamp:
curl --trace - --trace-time https://example.comQuesto aggiunge timestamp all’output della traccia, aiutando ad analizzare i problemi legati al timing. -
Stampare solo le intestazioni di risposta:
curl -s -o /dev/null -D - https://example.comQuesto comando mostra solo le intestazioni di risposta, utile per un’analisi rapida delle intestazioni. -
Stampare solo le intestazioni della richiesta:
curl -v -s -o /dev/null --stderr - https://example.com | grep '^>'Questo comando complesso filtra solo le intestazioni della richiesta, utile per ispezionare ciò che viene inviato. -
Utilizzare Pantheon Debugger:
curl -I -H "Pantheon-Debug:1" https://example.comQuesto comando utilizza l’intestazione di debug di Pantheon per ottenere informazioni aggiuntive su una richiesta, utile per i siti ospitati su Pantheon. -
Forzare il protocollo HTTP/2:
curl --http2 https://example.comQuesto assicura l’uso del protocollo HTTP/2, che può essere combinato con -I per verificare il supporto HTTP/2. -
Debug con netcat: In una terminale:
nc -l 1234In un’altra:curl http://127.0.0.1:1234Questo ti permette di vedere esattamente cosa cURL sta inviando, utile per il debug del payload.
Questi comandi avanzati offrono potenti capacità di debug, consentendo agli sviluppatori di ispezionare vari aspetti delle comunicazioni HTTP e risolvere problemi complessi.
Casi d’uso comuni di cURL
cURL è uno strumento da riga di comando versatile con numerose applicazioni. Ecco alcuni dei casi d’uso più comuni per cURL:
Interazioni Web
- Download di file: cURL può scaricare file da URL.
- Web scraping: cURL può recuperare il contenuto delle pagine web per scopi di scraping.
- Test di siti web: cURL è utile per verificare se un sito web è accessibile e per recuperare il suo contenuto.
Interazioni API
- Invio di richieste API: cURL supporta vari metodi HTTP (GET, POST, PUT, DELETE) per interagire con le API.
- Test degli endpoint API: cURL fornisce un modo rapido per testare e debuggare gli endpoint API senza la necessità di un client API dedicato.
Risoluzione dei problemi di rete
- Verifica della connettività: cURL può essere utilizzato per verificare le connessioni di rete e risolvere i problemi.
- Test DNS: cURL permette di forzare server DNS specifici per risolvere problemi relativi al DNS.
- Ispezione delle intestazioni: cURL può visualizzare le intestazioni HTTP, utile per il debug.
Trasferimento Dati
- Operazioni FTP: cURL supporta il trasferimento di file utilizzando il File Transfer Protocol (FTP).
- Interazioni SMTP: cURL può essere utilizzato per inviare email tramite il Simple Mail Transfer Protocol (SMTP).
Sicurezza e Autenticazione
- Connessioni SSL: cURL supporta connessioni sicure utilizzando SSL/TLS.
- Autenticazione: cURL può gestire vari metodi di autenticazione, inclusa l’autenticazione di base e i certificati client.
Sviluppo e Debug
- Simulazione di diversi metodi HTTP: cURL consente agli sviluppatori di testare facilmente vari metodi HTTP.
- Log verbosi: la modalità verbosa di cURL fornisce informazioni dettagliate sul ciclo richiesta-risposta, aiutando nel debug.
Questi casi d’uso dimostrano la flessibilità di cURL come strumento per le interazioni web, il test delle API, la risoluzione dei problemi di rete e le attività di sviluppo.
Test delle prestazioni del sito web con cURL
cURL è uno strumento potente per testare le prestazioni del sito web. Ecco come puoi utilizzarlo per misurare vari aspetti della velocità di caricamento di un sito:
Test di Prestazioni Base
Per ottenere una misura semplice del tempo di caricamento di un sito web, utilizza questo comando:
curl -o /dev/null -s -w "Tempo Totale: %{time_total}s\n" "https://example.com"
Questo comando outputterà il tempo totale impiegato per recuperare il sito web[2].
Metriche di Prestazioni Dettagliate
Per un’analisi più completa, puoi utilizzare cURL per misurare più metriche di prestazioni:
curl -s -w 'Test Tempo di Risposta del Sito Web per :%{url_effective}\n\nTempo di Ricerca:\t\t%{time_namelookup}\nTempo di Connessione:\t\t%{time_connect}\nTempo Pre-transfer:\t%{time_pretransfer}\nTempo Inizio Transfer:\t%{time_starttransfer}\n\nTempo Totale:\t\t%{time_total}\n' -o /dev/null https://example.com
Questo comando fornisce una suddivisione delle diverse fasi del processo di caricamento, inclusi il tempo di ricerca DNS, il tempo di connessione e il tempo totale[1].
Metriche Avanzate
Per un’analisi ancora più dettagliata, puoi includere metriche aggiuntive:
curl -o /dev/null -w "Versione HTTP: %{http_version}\nDimensione Pagina: %{size_download} byte\nCodice di Risposta: %{response_code}\nRicerca DNS: %{time_namelookup} sec\nTempo di Connessione: %{time_connect} sec\nTempo al Primo Byte: %{time_starttransfer} sec\nTempo Totale: %{time_total} sec\n" -s https://example.com
Questo comando include informazioni sulla versione HTTP, la dimensione della pagina e il codice di risposta[3].
Benchmarking di Multiple Richieste
Per testare la coerenza o monitorare le prestazioni nel tempo, puoi utilizzare un loop per fare più richieste:
for i in {1..5}; do curl -o /dev/null -s -w "Richiesta $i Tempo Totale: %{time_total}\n" https://example.com; done
Questo eseguirà il test cinque volte e mostrerà il tempo totale per ogni richiesta[3].
Creazione di uno Script di Test delle Prestazioni
Puoi creare uno script bash semplice per automatizzare questi test e salvare i risultati:
#!/bin/bash
curl -s -w 'Test Tempo di Risposta del Sito Web per :%{url_effective}\n\nTempo di Ricerca:\t\t%{time_namelookup}\nTempo di Connessione:\t\t%{time_connect}\nTempo Pre-transfer:\t%{time_pretransfer}\nTempo Inizio Transfer:\t%{time_starttransfer}\n\nTempo Totale:\t\t%{time_total}\n' -o /dev/null URL > webspeedtest_"$(date)"
Sostituisci “URL” con il sito web che desideri testare. Questo script salverà i risultati in un file con timestamp[5].
Utilizzando questi comandi cURL e script, puoi misurare e monitorare efficacemente le prestazioni del sito web, aiutandoti a identificare potenziali colli di bottiglia e ottimizzare i tempi di caricamento.