curl

 cURL (Client URL), URL'ler üzerinden veri transferi yapmanızı sağlayan güçlü bir komut satırı aracıdır. İnternete bağlı herhangi bir kaynağa (dosya, API, web sayfası vb.) HTTP, HTTPS, FTP, SFTP ve diğer protokoller üzerinden veri gönderebilir ve alabilirsiniz. cURL, genellikle veri çekme, dosya gönderme, API'lerle etkileşimde bulunma ve uzaktaki sunuculardan veri alma işlemlerinde kullanılır.

cURL Nedir?

  • cURL, komut satırında çalışabilen bir araçtır ve URL üzerinden veri alıp göndermek için kullanılır.

  • Protokol Desteği: HTTP, HTTPS, FTP, FTPS, SCP, SFTP, LDAP, ve daha fazlası gibi birçok ağ protokolünü destekler.

  • Platformlar: cURL, çoğu modern işletim sistemi (Linux, macOS, Windows) üzerinde çalışır.

  • Kütüphane: cURL, aynı zamanda programlama dillerinde kullanılabilen bir kütüphane olarak da mevcuttur.


🧭 cURL Komutunun Temel Kullanımı

cURL komutunun temel formatı şu şekildedir:

bash
curl [seçenekler] [URL]

Temel cURL Komutları:

1. Bir URL'den Veri Alma:

Bir URL'den veri almak için basit bir curl komutunu kullanabilirsiniz. Örneğin, bir web sayfasının içeriğini almak:

bash
curl https://www.example.com

Bu komut, https://www.example.com adresindeki HTML içeriğini terminal ekranına basar.


2. Bir Dosyayı İndirme:

Bir dosyayı internetten indirmenin en basit yolu cURL kullanmaktır. Örneğin, bir resim dosyasını indirirken:

bash
curl -O https://www.example.com/image.jpg

Bu komut, image.jpg dosyasını mevcut dizine indirir. -O seçeneği, dosyayı orijinal adıyla kaydetmek için kullanılır.


3. Dosya İndirme ve Farklı İsimle Kaydetme:

Bir dosyayı farklı bir isimle kaydetmek için -o seçeneğini kullanabilirsiniz:

bash
curl -o yeni_ad.jpg https://www.example.com/image.jpg

Bu komut, image.jpg dosyasını indirir ancak yeni_ad.jpg adıyla kaydeder.


4. HTTP Başlıklarını Görüntüleme:

Bir URL'ye yapılan isteğin HTTP başlıklarını görmek için -I seçeneğini kullanabilirsiniz. Bu, yanıt başlıklarını (örneğin içerik türü, sunucu bilgisi vb.) gösterir:

bash
curl -I https://www.example.com

5. Bir URL'ye POST İsteği Gönderme:

cURL, bir URL'ye veri göndermek için de kullanılabilir. Örneğin, bir formu POST yöntemiyle göndermek için:

bash
curl -X POST -d "kullanici=abc&parola=123" https://www.example.com/login

Bu komut, kullanici=abc ve parola=123 verilerini POST isteğiyle gönderir.

  • -X POST: HTTP metodunu POST olarak belirtir.

  • -d: Gönderilecek veriyi belirtir.


6. Dosya Yükleme (POST ile):

Bir dosyayı sunucuya yüklemek için cURL kullanabilirsiniz. Aşağıdaki örnekte, bir dosyayı POST yöntemiyle gönderiyoruz:

bash
curl -X POST -F "dosya=@/path/to/dosya.jpg" https://www.example.com/upload
  • -F: Dosya yüklemek için form verisi gönderir.

  • @ işareti, dosyanın yolunu belirtir.


cURL Seçenekleri:

SeçenekAçıklama
-ODosyayı orijinal adıyla indirir
-o [dosya_adı]Dosyayı belirttiğiniz adla indirir
-IHTTP başlıklarını görüntüler
-X [method]Belirtilen HTTP metodunu kullanır (GET, POST, PUT, DELETE, vb.)
-d [data]POST verisi gönderir
-F [form_data]Dosya yükler veya form verisi gönderir
-LYönlendirmeleri takip eder (HTTP 3xx yanıtları)
-H [header]Özel HTTP başlığı ekler
-u [username:password]Temel HTTP kimlik doğrulaması sağlar
-vAyrıntılı çıkış (verbose mode) sağlar
-CDevam eden dosya indirmelerine destek verir
-kSSL sertifikalarını kontrol etmez (tehlikeli olabilir)

🧩 cURL ile API Etkileşimi

cURL, RESTful API'lere veri gönderme ve alma işlemlerinde yaygın olarak kullanılır. API'lerle çalışırken aşağıdaki örnekler faydalı olabilir:

1. API GET İsteği Gönderme:

Bir API'den veri almak için GET isteği gönderebilirsiniz:

bash
curl https://api.example.com/data

2. API POST İsteği Gönderme:

Bir API'ye veri göndermek için POST isteği kullanabilirsiniz:

bash
curl -X POST -H "Content-Type: application/json" -d '{"name":"John", "age":30}' https://api.example.com/users
  • -H "Content-Type: application/json": JSON formatında veri gönderileceğini belirtir.

  • -d: Gönderilecek veriyi JSON formatında belirtir.

3. API'ye Kimlik Doğrulama ile İstek Gönderme:

Bir API'ye kimlik doğrulama (örneğin, token) ile istek göndermek için:

bash
curl -H "Authorization: Bearer your_token_here" https://api.example.com/protected_data

⚙️ cURL ile İleri Düzey Kullanım

  • cURL ile Yönlendirme Takibi:

Bir URL başka bir URL'ye yönlendirme yapıyorsa, -L seçeneği ile bu yönlendirmeleri takip edebilirsiniz:

bash
curl -L https://www.example.com
  • cURL ile Proxy Kullanma:

Bir proxy üzerinden bağlantı yapmak için -x seçeneğini kullanabilirsiniz:

bash
curl -x http://proxy.example.com:8080 https://www.example.com
  • SSL Sertifikası Hatasını Görmezden Gelme:

SSL hatalarını görmezden gelmek için -k seçeneği kullanılır. Bu, test ortamlarında veya güvenilmeyen sunucularda kullanılabilir, ancak güvenlik açısından dikkatli olunmalıdır:

bash
curl -k https://www.example.com

🌐 Sonuç

cURL, internet üzerindeki herhangi bir kaynağa veri gönderip almanızı sağlayan güçlü ve esnek bir araçtır. API entegrasyonları, dosya indirme, dosya yükleme ve veri analizi gibi birçok farklı amaçla kullanılabilir. SSL desteği, kimlik doğrulama, proxy kullanımı gibi gelişmiş özellikler ile daha karmaşık işlemleri gerçekleştirebilirsiniz.