cURL
CURL software | |
---|---|
Output di esempio di curl -O
| |
Genere | Gestore di download |
Sviluppatore | Daniel Stenberg |
Data prima versione | 1996 |
Ultima versione | 8.11.0 (6 novembre 2024) |
Sistema operativo | Multipiattaforma |
Linguaggio | C |
Licenza | curl license (licenza libera) |
Sito web | curl.se/ |
cURL (pronunciato "curl", /kɜːrl/[1]) è un software che fornisce una libreria (libcurl) e una interfaccia da linea di comando (curl), utilizzabili per trasferire dati e file tramite numerosi protocolli. Il nome significa "Client per URL" ("Client for URL" in inglese)[2].
Storia
[modifica | modifica wikitesto]La prima versione di cURL è stata pubblicata nel 1996[3]. Il suo nome originariamente era httpget, diventato poi urlget, prima dell'adozione del nome attuale curl. L'autore e sviluppatore principale è lo sviluppatore svedese Daniel Stenberg, che ha creato questo software per automatizzare il recupero dei tassi di cambio valuta per gli utenti di IRC.
libcurl
[modifica | modifica wikitesto]libcurl è una libreria lato client per trasferimento dati tramite URL, che supporta cookie, DICT, FTP, FTPS, Gopher, HTTP/1 (con supporto per HTTP/2 e HTTP/3), HTTP POST, HTTP PUT, proxy tunneling HTTP, HTTPS, IMAP, Kerberos, LDAP, MQTT, POP3, RTSP, RTMP, SCP, SMTP, e SMB. La libreria supporta lo schema URI file, SFTP, Telnet, TFTP, ripresa del trasferimento del file, caricamento FTP, caricamento HTTP basato sui form, certificati HTTPS, LDAPS, proxy e autenticazione utente con password.
La libreria libcurl è portabile. Può essere compilato e funzionare in maniera identica su numerose piattaforme, come AIX, AmigaOS, Android, BeOS, BlackBerry Tablet OS e BlackBerry 10, OpenVMS, Darwin, DOS, FreeBSD, HP-UX, HURD, iOS, IRIX, Linux, macOS, NetBSD, NetWare, OpenBSD, OS/2, QNX Neutrino, RISC OS, Solaris, Symbian, Tru64, Ultrix, UnixWare, Microsoft Windows e OpenHarmony.
La libreria libcurl è open source, thread-safe e compatibile con IPv6. Sono disponibili associazioni per oltre 50 linguaggi[4], tra cui C/C++, Java, Julia (in bundle), PHP e Python.
La libreria libcurl supporta GnuTLS, mbed TLS, NSS, gskit su IBM i, SChannel su Windows, Secure Transport su macOS e iOS, SSL/TLS attraverso OpenSSL, BoringSSL, libreSSL, AmiSSL, wolfSSL, BearSSL e rustls.
curl
[modifica | modifica wikitesto]curl è uno strumento da linea di comando per ottenere o inviare dati, inclusi file, usando una sintassi URL. Dato che curl utilizza libcurl, supporta tutti i protocolli supportati da libcurl.
curl supporta HTTPS e verifica di default i certificati SSL quando è specificato un protocollo sicuro, come HTTPS. Quando curl si connette ad un server remoto tramite HTTPS, riceve il certificato del server, e lo controlla tramite i suoi certificati CA per verificare che il server sia quello che dichiara di essere. Alcuni pacchetti di curl sono in bundle con file di certificati CA. Ci sono numerose opzioni per specificare un certificato CA, come --cacert
e --capath
. L'opzione --cacert
può essere usata per specificare la posizione del file del certificato CA. Su Windows, se un file di certificato CA non è specificato, curl cercherà un certificato CA con nome “curl-ca-bundle.crt” nelle seguenti cartelle nell'ordine indicato:
- Cartella in cui il software curl è situato.
- Cartella corrente.
- Cartella di sistema Windows.
- Cartella di Windows.
- Cartelle elencate nella variabile d'ambiente
%PATH%
.
curl genererà un messaggio di errore se il server remoto usa un certificato autofirmato, o se il server remoto non ha un certificato firmato da una CA presente nel file dei certificati CA. Le opzioni -k
o --insecure
possono essere usate per saltare la verifica del certificato. In alternativa, se il server remoto è fidato, il certificato CA del server può essere aggiunto al file dei certificati CA.
Esempi
[modifica | modifica wikitesto]Un uso di base di curl richiede semplicemente scrivere curl sulla linea di comando, seguito dall'URL da richiedere:
$ curl www.example.com
curl di default mostra ciò che riceve dall'URL sullo standard output del sistema (solitamente la finestra del terminale). Quindi eseguire il comando qui sopra, sulla maggior parte dei sistemi, mostrerebbe il codice sorgente di www.example.com nella finestra del terminale. L'opzione -o
può essere usata per memorizzare l'output in un file:
$ curl -o example.html www.example.com
Sono disponibili inoltre altre opzioni che modificano il comportamento di curl.
Note
[modifica | modifica wikitesto]- ^ curl - Frequently Asked Questions, su curl.se. URL consultato il 16 settembre 2024.
- ^ The name - everything curl, su everything.curl.dev. URL consultato il 16 settembre 2024.
- ^ curl - History, su curl.se. URL consultato il 16 settembre 2024.
- ^ libcurl - Bindings, su curl.se. URL consultato il 16 settembre 2024.
Voci correlate
[modifica | modifica wikitesto]Altri progetti
[modifica | modifica wikitesto]- Wikimedia Commons contiene immagini o altri file su cURL
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale, su curl.se.
- CURL, su packages.debian.org.
- Repository sorgenti di CURL, su github.com.
- Sito di segnalazione bug, su github.com.
- (EN) CURL, su Free Software Directory.