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.
Indice
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.
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:
- df linux – il commando per controllare lo spazio su disco
- Comando tail Linux: come monitorare i logs in tempo reale
- Connessione SSH: come effettuarla da terminale
- File Hosts: cosa è e come utilizzarlo
- Come fare una chiamata AJAX ( GET / POST )
- Come diventare sviluppatore web: guida completa
- Perché usare WordPress: i motivi per sceglierlo
Conclusioni
In questo articolo hai appreso come utilizzare curl
, il comando per Command Line Interface più utilizzato per il trasferimento dati.