**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
--------

1. ↑  Stenberg, Daniel (20 Mart 2015). "curl, 17 years old today". *daniel.haxx.se*. 6 Aralık 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Mart 2015.
2. ↑  "cURL History Page". 23 Nisan 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Haziran 2016.
3. ↑  ""Origin of the name"". 27 Haziran 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ekim 2018.
4. ↑  "Open Source Components for the Native SDK for BlackBerry Tablet OS". 2 Nisan 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Haziran 2016.

Dış bağlantılar
---------------

* Resmî site (İngilizce)
* cURL manual 24 Haziran 2016 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)
* Comparison of cURL vs other open source download tools 24 Haziran 2016 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)
* Comparison of cURL vs wget 24 Haziran 2016 tarihinde Wayback Machine sitesinde arşivlendi. (İngilizce)