cURL

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Disambiguazione – Se stai cercando altri significati, vedi Curl (disambigua).
CURL
software
Logo
Logo
Output di esempio di curl -O
Output di esempio di curl -O
Output di esempio di curl -O
GenereGestore di download
SviluppatoreDaniel Stenberg
Data prima versione1996
Ultima versione8.10.1 (18 settembre 2024)
Sistema operativoMultipiattaforma
LinguaggioC
Licenzacurl license
(licenza libera)
Sito webcurl.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].

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 è 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 è 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:

  1. Cartella in cui il software curl è situato.
  2. Cartella corrente.
  3. Cartella di sistema Windows.
  4. Cartella di Windows.
  5. 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.

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.

  1. ^ curl - Frequently Asked Questions, su curl.se. URL consultato il 16 settembre 2024.
  2. ^ The name - everything curl, su everything.curl.dev. URL consultato il 16 settembre 2024.
  3. ^ curl - History, su curl.se. URL consultato il 16 settembre 2024.
  4. ^ libcurl - Bindings, su curl.se. URL consultato il 16 settembre 2024.

Altri progetti

[modifica | modifica wikitesto]

Voci correlate

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]