Categorie
Linux Tips

Comando curl Linux: come utilizzarlo

Il comando curl è uno strumento da linea di comando per lo scambio di dati tra entità.

Il nome dello strumento è l’acronimo di Client URL.

Si tratta di una risorsa fondamentale sia per i sviluppatori web che per gli amministratori di sistemi.

Comando curl Linux: cosa è

curl permette di trasferire dati da / ad un server.

I protocolli attualmente supportati da curl sono:

  • DICT
  • FILE
  • FTP
  • FTPS
  • GOPHER
  • GOPHERS
  • HTTP
  • HTTPS
  • IMAP
  • IMAPS
  • LDAP
  • LDAPS
  • MQTT
  • POP3
  • POP3S
  • RTMP
  • RTMPS
  • RTSP
  • SCP
  • SFTP
  • SMB
  • SMBS
  • SMTP
  • SMTPS
  • TELNET
  • TFTP
  • WS
  • WSS

Sintassi comando curl

Considerato l’elevato numero di protocolli supportato da curl, la sua sintassi può risultare articolata.

In questa sezione, riporterò la sintassi più utilizzata da un generico sviluppatore web.

La sintassi dello strumento è la seguente:

curl [opzioni / URLs]

Le opzioni iniziano con uno o due trattini.

Molte di esse hanno bisogno di un valore aggiuntivo vicine a loro.

Le opzioni utilizzate dovranno essere coerenti con il protocollo specificato nell’URL.

Nell’elenco di seguito riporto alcune delle opzioni supportate:

  • --basic: comunica a curl di usare HTTP Basic Authentication con l’host remoto
  • --cacert: indica a curl il certificato della Certificate Authority da utilizzare per la creazione di un canale di comunicazione tramite TLS
  • --http2: fa in modo che curl utilizzi il protocollo http, versione 2
  • -k, --insecure: specifica a curl di non effettuare verifiche riguardo ai certificati quando viene stabilita una connessione tramite TLS, SFTP e SCP

Per ulteriori approfondimenti in merito alla sintassi ed alle opzioni disponibili, ti invito a consultare la documentazione di curl.

Comando curl: esempi

In questa sezione avrai modo di vedere alcuni esempi di utilizzo di curl.

Chiamata HTTP GET con Headers

Il seguente estratto di codice esegue una chiamata HTTP GET con HTTP headers.

curl https://www.dariocapozzi.it/un/indirizzo/
   -H "X-Custom-Header: value"
   -H "Content-Type: application/json"

Chiamata HTTP POST con Headers

Il seguente estratto di codice esegue una chiamata HTTP POST con HTTP headers.

curl -X POST https://www.dariocapozzi.it/un/indirizzo/
   -H 'Accept: application/json'
   -H 'Content-Type: application/json'
   -d '{"id": "7328"}'

In questa chiamata vengono inviate nelle informazioni al server serializzate in JSON.

Chiamata HTTP GET con cookies

Grazie a questo snippet di codice potrai effettuare una chiamata HTTP GET inviando un cookie nella richiesta.

curl --cookie "Name=Value" https://www.dariocapozzi.it/un/indirizzo/

Riprodurre una chiamata HTTP del browser con curl

Come ho accennato nella parte iniziale dell’articolo, curl è uno strumento molto utilizzato dagli sviluppatori web.

Per questo motivo, i principali browser moderni consentono di riprodurre una chiamata HTTP utilizzando curl.

comando-curl-da-ajax

L’immagine sopra mostra l’opzione di Google Chrome per riprodurre una chiamata HTTP tramite curl.

Nella maggior parte dei browser tale opzione è disponibile cliccando tasto destro sulla chiamata HTTP che si vuole riprodurre.

Approfondimenti Linux

Questo blog contiene diversi articoli riguardo a Linux ed ad Web development.

Eccone alcuni:

Conclusioni

In questo articolo hai appreso come utilizzare curl, il comando per Command Line Interface più utilizzato per il trasferimento dati.