Scheda sintetica di cURL
Comandi utili di cURL con parametri
Ecco una scheda rapida sui comandi cURL più utili con i relativi parametri:

L’immagine soprastante è generata da Flux - modello AI text to image.
cURL è un tool da riga di comando essenziale per eseguire 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 di Sviluppo 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 redirect:
curl -L http://example.com/file - Mostrare solo le intestazioni:
curl -I http://example.com
Autenticazione
- Autenticazione di base:
curl -u username:password http://example.com. cURL imposta l’intestazioneAuthorization: Basica partire da quel nome utente e password. La stessa intestazione, costruita conprintfebase64, si trova nella Scheda rapida di codifica e decodifica Base64. - Utilizzare un 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 di un form:
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 del client:
curl --cert cert.pem --key key.pem https://example.com
Proxy e Networking
- 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à dettagliata (verbose):
curl -v http://example.com - Scrivere l’output su un file:
curl -o file.html http://example.com - Salvare con il nome del file remoto:
curl -O http://example.com/file.zip
Varie
- 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 scheda copre i comandi cURL più comunemente utilizzati e i relativi parametri, fornendo un riferimento rapido per varie operazioni HTTP e trasferimenti di dati.
Comandi cUrl avanzati
Ecco alcuni comandi curl avanzati per il debug:
-
Output dettagliato:
curl -v https://example.comQuesto comando fornisce informazioni dettagliate sulla richiesta e sulla risposta, incluse le intestazioni e i dettagli della connessione. -
Dump di tracciamento completo:
curl --trace - https://example.comQuesto produce un hexdump di tutti i dati in entrata e in uscita, offrendo una visione completa dell’intera comunicazione. -
Tracciamento con timestamp:
curl --trace - --trace-time https://example.comQuesto aggiunge timestamp all’output del tracciamento, utile per analizzare problemi legati ai tempi di risposta. -
Stampare solo le intestazioni della risposta:
curl -s -o /dev/null -D - https://example.comQuesto comando mostra solo le intestazioni della 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 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 per HTTP/2. -
Debug con netcat: In un terminale:
nc -l 1234In un altro:curl http://127.0.0.1:1234Questo ti consente di vedere esattamente cosa sta inviando curl, utile per il debug dei payload.
Questi comandi avanzati forniscono potenti capacità di debugging, consentendo agli sviluppatori di ispezionare vari aspetti delle comunicazioni HTTP e di risolvere problemi complessi.
Casi d’uso comuni di cUrl
curl è un tool da riga di comando versatile con numerose applicazioni. Ecco alcuni dei casi d’uso più comuni per curl:
Interazioni Web
- Scaricamento 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 recuperarne il contenuto.
Interazioni con le API
- Invio di richieste API: curl supporta vari metodi HTTP (GET, POST, PUT, DELETE) per interagire con le API.
- Test degli endpoint API: curl offre un modo rapido per testare e fare il debug degli endpoint API senza bisogno di un client API dedicato.
Troubleshooting di rete
- Verifica della connettività: curl può essere utilizzato per verificare le connessioni di rete e risolvere i problemi.
- Test del DNS: curl consente di forzare server DNS specifici per risolvere problemi correlati al DNS.
- Ispezione delle intestazioni: curl può visualizzare le intestazioni HTTP, il che è utile per il debug.
Trasferimento di 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, inclusi autenticazione di base e certificati del client.
Sviluppo e Debug
- Simulazione di diversi metodi HTTP: curl consente agli sviluppatori di testare facilmente vari metodi HTTP.
- Logging dettagliato: la modalità verbose di curl fornisce informazioni dettagliate sul ciclo richiesta-risposta, facilitando il debug.
Questi casi d’uso dimostrano la flessibilità di curl come strumento per interazioni web, test di API, troubleshooting di rete e attività di sviluppo.
Test delle prestazioni dei siti web con cURL
curl è un potente strumento per testare le prestazioni dei siti web. Ecco come puoi utilizzarlo per misurare vari aspetti della velocità di caricamento di un sito web:
Test delle prestazioni di base
Per ottenere una semplice misurazione del tempo di caricamento di un sito web, usa questo comando:
curl -o /dev/null -s -w "Tempo Totale: %{time_total}s\n" "https://example.com"
Questo comando visualizzerà 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 prestazione:
curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://example.com
Questo comando fornisce una ripartizione delle diverse fasi del processo di caricamento, incluso 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 "HTTP Version: %{http_version}\nPage Size: %{size_download} bytes\nResponse Code: %{response_code}\nDNS Lookup: %{time_namelookup} sec\nConnect Time: %{time_connect} sec\nTime to First Byte: %{time_starttransfer} sec\nTotal Time: %{time_total} sec\n" -s https://example.com
Questo comando include informazioni sulla versione HTTP, sulla dimensione della pagina e sul codice di risposta[3].
Benchmarking di più richieste
Per testare la consistenza o monitorare le prestazioni nel tempo, puoi utilizzare un ciclo per effettuare più richieste:
for i in {1..5}; do curl -o /dev/null -s -w "Request $i Total Time: %{time_total}\n" https://example.com; done
Questo eseguirà il test cinque volte e mostrerà il tempo totale per ciascuna richiesta[3].
Creare uno script per test di prestazioni
Puoi creare un semplice script bash per automatizzare questi test e salvare i risultati:
#!/bin/bash
curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\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 data e ora[5].
Utilizzando questi comandi e script curl, puoi misurare e monitorare efficacemente le prestazioni del sito web, aiutandoti a identificare potenziali colli di bottiglia e ottimizzare i tempi di caricamento.