Scheda sintetica di cURL

Comandi utili di cURL con parametri

Ecco una scheda rapida sui comandi cURL più utili con i relativi parametri:

una persona con un cartello curl

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’intestazione Authorization: Basic a partire da quel nome utente e password. La stessa intestazione, costruita con printf e base64, 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:

  1. Output dettagliato: curl -v https://example.com Questo comando fornisce informazioni dettagliate sulla richiesta e sulla risposta, incluse le intestazioni e i dettagli della connessione.

  2. Dump di tracciamento completo: curl --trace - https://example.com Questo produce un hexdump di tutti i dati in entrata e in uscita, offrendo una visione completa dell’intera comunicazione.

  3. Tracciamento con timestamp: curl --trace - --trace-time https://example.com Questo aggiunge timestamp all’output del tracciamento, utile per analizzare problemi legati ai tempi di risposta.

  4. Stampare solo le intestazioni della risposta: curl -s -o /dev/null -D - https://example.com Questo comando mostra solo le intestazioni della risposta, utile per un’analisi rapida delle intestazioni.

  5. 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.

  6. Utilizzare Pantheon Debugger: curl -I -H "Pantheon-Debug:1" https://example.com Questo comando utilizza l’intestazione di debug di Pantheon per ottenere informazioni aggiuntive su una richiesta, utile per siti ospitati su Pantheon.

  7. Forzare il protocollo HTTP/2: curl --http2 https://example.com Questo assicura l’uso del protocollo HTTP/2, che può essere combinato con -I per verificare il supporto per HTTP/2.

  8. Debug con netcat: In un terminale: nc -l 1234 In un altro: curl http://127.0.0.1:1234 Questo 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

  1. Scaricamento di file: curl può scaricare file da URL.
  2. Web scraping: curl può recuperare il contenuto delle pagine web per scopi di scraping.
  3. Test di siti web: curl è utile per verificare se un sito web è accessibile e per recuperarne il contenuto.

Interazioni con le API

  1. Invio di richieste API: curl supporta vari metodi HTTP (GET, POST, PUT, DELETE) per interagire con le API.
  2. 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

  1. Verifica della connettività: curl può essere utilizzato per verificare le connessioni di rete e risolvere i problemi.
  2. Test del DNS: curl consente di forzare server DNS specifici per risolvere problemi correlati al DNS.
  3. Ispezione delle intestazioni: curl può visualizzare le intestazioni HTTP, il che è utile per il debug.

Trasferimento di Dati

  1. Operazioni FTP: curl supporta il trasferimento di file utilizzando il File Transfer Protocol (FTP).
  2. Interazioni SMTP: curl può essere utilizzato per inviare email tramite il Simple Mail Transfer Protocol (SMTP).

Sicurezza e Autenticazione

  1. Connessioni SSL: curl supporta connessioni sicure utilizzando SSL/TLS.
  2. Autenticazione: curl può gestire vari metodi di autenticazione, inclusi autenticazione di base e certificati del client.

Sviluppo e Debug

  1. Simulazione di diversi metodi HTTP: curl consente agli sviluppatori di testare facilmente vari metodi HTTP.
  2. 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.

Iscriviti

Ricevi nuovi articoli su sistemi, infrastruttura e ingegneria AI.