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" İngilizcedeki *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 

Bir CA sertifikası dosyası belirtmek için:
 curl --cacert c:\temp\cacerts.crt 

Sertifika doğrulamasını es geçmek için:
 curl --insecure 

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