CURL

cURL, çeşitli protokoller kullanarak, veri aktarımı sağlamak için kütüphane ve komut satırı aracı sunan bir bilgisayar yazılımı projesidir. cURL projesi,  libcurl ve cURL olarak ikiye ayrılır. İlk olarak 1997 yılında yayınlanmıştır. İsminde bulunan "c" İngilizce'deki client (istemci) kelimesinden gelmektedir.

libcurl 
libcurl, FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, Telnet, DICT, LDAP, LDAPS, IMAP, POP3, SMTP ve RTSP protokollerini destekleyen, istemci taraflı ücretsiz bir URL transfer kütüphanesidir.

libcurl kütüphanesi taşınabilirdir. Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HP-UX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Symbian, AmigaOS, OS/2, BeOS, OS X, iOS, Android, Ultrix, QNX Neutrino, BlackBerry Tablet OS, BlackBerry 10, OpenVMS, RISC OS, NetWare ve DOS gibi birçok platformda çalışabilir.

libcurl kütüphanesi ücretsizdir ve IPv6 uyumludur. C/C++, Java, PHP ve Python dahil, 40'tan fazla programlama dilini destekler.

cURL 
URL sözdizimini kullanarak dosya almak ya da göndermek için bir komut satırı aracıdır.

cURL, libcurl kütüphanesini kullanmaktadır. HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, LDAP, DAP, DICT, TELNET, FILE, IMAP, POP3, SMTP ve RTSP gibi yaygın internet protokollerini destekler.

cURL, HTTPS gibi güvenli protokoller belirtildiğinde varsayılan olarak HTTPS ve SSL sertifika doğrulaması yapar. cURL uzak bir sunucuya HTTPS ile bağlandığında, ilk olarak uzak sunucunun sertifikasını elde eder ve geçerli olup olmadığını doğrular.

cURL, eğer uzak sunucu kendinden imzalı (self-signed) bir sertifikaya sahipse ya da sunucu sertifikası geçerli bir CA (certificate authority) tarafından imzalanmamışsa, hata mesajı dönecektir. Bu yüzden sertifika doğrulamasını es geçmek için -k ya da --insecure seçenekleri kullanılabilir. Alternatif olarak, uzak sunucu güvenilirse, uzak sunucunun sertifikası, CA sertifikalarının depolandığı dosyaya eklenebilir.

cURL komut satırı kullanım örnekleri 

example.com anasayfasını getirmek için:
 curl www.example.com

cURL varsayılan olarak çıktıyı, sistemin standart çıktısı (stdout) olarak verir. Bu yüzden yukarıdaki komut, www.example.com'un kaynak kodunu terminal penceresinde gösterir.

-o parametresi ile çıktı, bir dosyaya yazılabilir:
 curl -o example.html www.example.com

Burada, www.example.com'un kaynak kodu, example.html adındaki dosyada depolanacaktır. Çıktı alındığı sırada bir ilerleme çubuğunda çıktının ne kadarının indirildiği gösterilecektir.

-O parametresi ile, indirilen dosya ile aynı adla bir dosya oluşturulur ve çıktı o dosyaya yazılır:
 curl -O www.example.com/example.html

Eğer sunucu, bu dosyanın (example.html) başka bir adrese taşındığı yanıtını verirse (üstveride Location: olarak belirtilir), -L parametresi kullanılır:
 curl -OL www.example.com/example.html

cURL, uzak sunucuya HTTPS protokolü ile bağlanabilir (eğer CA sertifika dosyası bulunmuyorsa hata mesajı döner):
 curl https://securesite.com/login.html

Bir CA sertifikası dosyası belirtmek için:
 curl --cacert c:\temp\cacerts.crt https://securesite.com/login.html

Sertifika doğrulamasını es geçmek için:
 curl --insecure https://self-signed-cert.com/login.html

cURL, proxy desteği, kullanıcı kimlik doğrulaması, FTP yüklemesi, HTTP post, SSL bağlantıları, çerezler, dosya transferi, Metalink ve çeşitli diğer özellikler sunmaktadır.

Ayrıca bakınız 
 Wget
 Arama robotu

Kaynakça

Dış bağlantılar
 
cURL manual  
Comparison of cURL vs other open source download tools  
Comparison of cURL vs wget  

Komut satırı yazılımları
Ücretsiz çapraz platform yazılımları
C ile programlanmış ücretsiz yazılımlar
C kütüphaneleri
Taşınabilir yazılım