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:
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:
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:
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:
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:
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:
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:
-
-F
: Dosya yüklemek için form verisi gönderir. -
@
işareti, dosyanın yolunu belirtir.
cURL Seçenekleri:
Seçenek | Açıklama |
---|---|
-O | Dosyayı orijinal adıyla indirir |
-o [dosya_adı] | Dosyayı belirttiğiniz adla indirir |
-I | HTTP 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 |
-L | Yönlendirmeleri takip eder (HTTP 3xx yanıtları) |
-H [header] | Özel HTTP başlığı ekler |
-u [username:password] | Temel HTTP kimlik doğrulaması sağlar |
-v | Ayrıntılı çıkış (verbose mode) sağlar |
-C | Devam eden dosya indirmelerine destek verir |
-k | SSL 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:
2. API POST İsteği Gönderme:
Bir API'ye veri göndermek için POST isteği kullanabilirsiniz:
-
-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:
⚙️ 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:
-
cURL ile Proxy Kullanma:
Bir proxy üzerinden bağlantı yapmak için -x
seçeneğini kullanabilirsiniz:
-
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:
🌐 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.