ServBay’de cURL Kullanımı 
cURL, verileri farklı protokoller (HTTP, HTTPS, FTP vb.) üzerinden aktarmak için yaygın olarak kullanılan, güçlü bir komut satırı aracı ve kütüphanedir. Web geliştirme alanında cURL, HTTP istekleri gönderme, API çağrıları yapma, dosya indirme/yükleme, servis bağlantılarını test etme gibi görevler için vazgeçilmezdir.
ServBay, geliştiricilere yönelik yerel bir web geliştirme ortamı olarak, en güncel cURL sürümünü kurulum sırasında otomatik olarak sunar; ayrıca kurulum yapmanıza gerek yoktur. Böylece ServBay’in sunduğu terminal ortamında doğrudan curl komutunu kullanarak kolayca ağ işlemleri ve testler gerçekleştirebilirsiniz.
Bu makalede, ServBay ortamında cURL kullanımı ayrıntılı olarak ele alınacak; yaygın örnekler ve ileri düzey ipuçları sunulacaktır.
Kurulum ve Yapılandırma 
cURL’ün Kurulumu 
ServBay cURL aracını kurulum aşamasında otomatik olarak sisteme entegre eder, ayrıca manuel kurulum yapmanız gerekmez. Yani ServBay’in terminalinde curl komutunu doğrudan çalıştırabilirsiniz.
cURL’ün kullanılabilir olup olmadığını ve sürümünü kontrol etmek için ServBay terminaline şu komutu yazabilirsiniz:
bash
curl --version1
Bu komut cURL’ün mevcut sürüm bilgisini ve desteklediği protokol ile özellikleri ekrana getirerek hazır olduğundan emin olmanızı sağlar.
cURL’ü Yapılandırma 
Günlük kullanım senaryoları için cURL ek yapılandırma gerektirmez. Davranışını detaylı komut satırı parametreleriyle özelleştirebilir, farklı veri aktarım ihtiyaçlarınızı rahatça karşılayabilirsiniz.
Temel Kullanım Örnekleri 
cURL, çeşitli veri transfer görevleri için geniş bir komut satırı seçenekleri seti sunar. Aşağıda en yaygın web geliştirme işlemlerini gerçekleştirmek için bazı temel örnekler yer alıyor:
HTTP GET İsteği Gönderme 
GET isteği göndermek, cURL’ün en sık kullanılan amaçlarından biridir ve bir URL’den kaynak (veri) çekmek için kullanılır.
bash
curl -X GET https://api.servbay.demo/data1
Ya da, varsayılan yöntem GET olduğu için daha sade şekilde:
bash
curl https://api.servbay.demo/data1
HTTP POST İsteği Gönderme 
POST isteği genellikle sunucuya veri göndermek (ör. form verileri veya JSON yükleri) için tercih edilir. -d (veya --data) seçeneğiyle gönderilecek içeriği belirtebilirsiniz.
bash
curl -X POST -d "param1=value1¶m2=value2" https://api.servbay.demo/data1
Dosya İndirme 
cURL ile dosya indirmek son derece kolaydır. -O bayrağı ile dosya uzak sunucudaki orijinal adıyla kaydedilir.
bash
curl -O https://servbay.demo/file.zip1
Farklı bir dosya adıyla kaydetmek isterseniz, -o seçeneğini kullanın:
bash
curl -o local_filename.zip https://servbay.demo/file.zip1
Dosya Yükleme 
cURL ile kolayca dosya yükleme simülasyonu yapabilirsiniz. -F (veya --form) seçeneğiyle gönderilecek dosyayı şu formatta tanımlayabilirsiniz: name=@/yol/klasör/dosya
bash
curl -X POST -F "file=@/Applications/ServBay/www/servbay.demo/upload/document.pdf" https://api.servbay.demo/upload1
/Applications/ServBay/www/servbay.demo/upload/document.pdf yolunu, yüklemek istediğiniz dosyanın gerçek yoluyla değiştiriniz.
İleri Düzey Kullanım İpuçları 
cURL, temel işlevlerinin ötesinde pek çok ileri seçenek de sunarak onu inanılmaz derecede esnek bir ağ aracı haline getirir.
HTTP Başlık Bilgisi Ayarlama 
-H (veya --header) seçeneği ile isteğe özel HTTP başlıkları ekleyebilirsiniz. Özellikle belirli içerik türleri göndermek (örn. JSON), kimlik doğrulama bilgileri (API anahtarı veya Bearer token) kullanmak gibi durumlarda kullanışlıdır.
bash
curl -H "Content-Type: application/json" -H "Authorization: Bearer your_token_here" https://api.servbay.demo/data1
JSON Veri İşleme 
Modern API geliştirmelerinde JSON yaygın veri formatıdır. cURL ile JSON veri göndermek veya almak oldukça kolaydır.
JSON Veri Gönderme 
JSON gönderirken Content-Type başlığını application/json olarak ayarlayın ve -d ile JSON dizgesini iletin.
bash
curl -X POST -H "Content-Type: application/json" -d '{"key1":"value1", "key2":"value2"}' https://api.servbay.demo/data1
JSON Yanıtını Alıp Ayrıştırma (jq ile birlikte) 
cURL’ün aldığı yanıt ham metin olarak gelir. JSON yanıtlarını kolayca incelemek ve ayrıştırmak için güçlü komut satırı aracı olan jq ile birlikte kullanabilirsiniz.
bash
curl -s https://api.servbay.demo/data | jq .1
Not: jq ServBay’e gömülü değildir; ayrıca kurmanız gerekir. macOS’ta Homebrew yüklediyseniz brew install jq komutuyla yükleyebilirsiniz. -s, jq için sessiz moddur (ilerleme ve hata mesajları gösterilmez), böylece sadece yanıt gövdesi jq’ya aktarılır. Daha fazla bilgi için jq resmi sitesini inceleyebilirsiniz.
Çerezlerle (Cookie) Çalışma 
cURL ile çerezleri kaydedip yeniden kullanmak mümkündür. Bu, oturum yönetimi gerektiren web uygulamalarını test etmek için oldukça önemlidir.
Çerezleri Dosyada Kaydetme 
-c (veya --cookie-jar) seçeneğiyle sunucudan gelen çerezleri belirlediğiniz bir dosyada saklayabilirsiniz.
bash
curl -c cookies.txt https://servbay.demo1
Çerez Dosyasını Kullanarak İstek Gönderme 
-b (veya --cookie) seçeneği ile daha önce kaydedilmiş çerez dosyasını yükleyip, sonraki isteklerde kullanabilirsiniz.
bash
curl -b cookies.txt https://servbay.demo/profile1
Proxy Kullanımı 
Bir proxy sunucusu üzerinden internete erişmeniz gerekiyorsa, -x (veya --proxy) ile proxy adresini belirtebilirsiniz.
bash
curl -x http://proxy.servbay.demo:8080 https://api.servbay.demo/data1
Bant Genişliğini Sınırlama 
--limit-rate seçeneği ile veri aktarım hızını sınırlayabilirsiniz (g/s, m/s, k/s gibi birimler ile). Ağ sınırlı senaryoları test etmek veya bant genişliğini korumak için faydalıdır.
bash
curl --limit-rate 100K https://servbay.demo/largefile.zip -O1
Kaldığı Yerden Devam Ettirme (Resumable Downloads) 
Büyük dosya indirme işlemlerinde -C - seçeneği ile, cURL var olan kısmı kontrol edip indirme işlemini kaldığı yerden sürdürebilir.
bash
curl -C - -O https://servbay.demo/largefile.zip1
SSL Sertifikası Doğrulama 
Varsayılan olarak cURL, HTTPS bağlantılarının SSL sertifikalarını doğrular. Belirli bir CA sertifikası dosyasını doğrulama için kullanmak isterseniz, --cacert seçeneğini kullanın.
bash
curl --cacert /path/to/custom_ca.crt https://secure.servbay.demo1
Eğer ServBay’de HTTPS tabanlı bir site kurduysanız ve ServBay’in sunduğu kök sertifika ile imzalanmış sertifikalar kullanıyorsanız, SSL doğrulamada ServBay’in CA paketinden faydalanabilirsiniz. Doğru dosya yolunu öğrenmek için ServBay’in SSL/HTTPS belgelerine bakın; genellikle etc/ssl dizinindedir.
Uyarı: Bazı test senaryolarında --insecure (veya -k) seçeneği ile SSL doğrulama hatalarını devre dışı bırakabilirsiniz. Bu seçenek, üretim ortamında veya hassas veri işlemlerinde KESİNLİKLE önerilmez; çünkü önemli güvenlik kontrollerini tamamen devre dışı bırakır.
bash
curl --insecure https://secure.servbay.demo1
Sıkça Sorulan Sorular (SSS) 
1. ServBay terminalinde curl komutu bulunamadı hatası alıyorum 
- Neden: Genellikle, kullandığınız terminal ortamının ServBay’in yürütülebilir dosya yollarını tanımamasından kaynaklanır.
 - Çözüm: ServBay’in ortam değişkenlerinin doğru yapılandırıldığından emin olun. Sorun devam ederse, ServBay’in “Ayarlar” - “Komut Satırı Araçları” bölümünü açarak hem 
zshhem debashiçin gerekli ayarları yapın ve terminali yeniden başlatın. 
2. İstek gönderirken bağlantı hatası veya zaman aşımı meydana geliyor 
- Neden: Hedef sunucuya ulaşılamama, ağ bağlantı sorunları, güvenlik duvarı engeli veya yanlış URL gibi pek çok farklı nedenden olabilir.
 - Çözüm:
- Girdiğiniz URL’nin doğru olduğundan emin olun.
 - Ağ bağlantınızı kontrol edin.
 - Eğer yerel ServBay sitesiyle (örn. 
servbay.demo) çalışıyorsanız, ServBay’in çalışır ve ilgili web sunucularının (ör. Caddy/Nginx) başlatılmış olduğundan emin olun. - Bir güvenlik duvarı veya antivirüs yazılımı cURL’ün dışa bağlantılarını engelliyor olabilir.
 - HTTPS bağlantıları için SSL sertifikasının geçerli olup olmadığını kontrol edin (yukarıdaki SSL doğrulama bölümüne bakın).
 
 
3. Dosya indirme veya yükleme işlemi başarısız oldu 
- Neden: Hatalı dosya yolu, dosya izinleri, sunucunun işlemi desteklememesi veya sunucu taraflı hatalar nedeniyle oluşabilir.
 - Çözüm:
- Komutta belirttiğiniz dosya yolunun var ve doğru olduğuna emin olun.
 - ServBay’i çalıştıran kullanıcının veya terminal oturumunuzun dosyaya okuma/yazma izni olduğundan emin olun.
 - Yerel ServBay sitesine dosya yüklemeye çalışıyorsanız, sunucu yapılandırmasının yüklemeyi destekleyip desteklemediğini ve hedef klasörün mevcut & yazılabilir olup olmadığını kontrol edin.
 - cURL’ün döndürdüğü hata mesajlarını inceleyerek daha fazla bilgi edinin.
 
 
4. SSL sertifika doğrulama hatası alıyorum 
- Neden: Hedef sitenin SSL sertifikası geçersiz, süresi dolmuş, alan adı uyuşmuyor, zincir eksik veya cURL bu sertifikayı imzalayan CA kök sertifikasına erişemiyor olabilir.
 - Çözüm:
- Hedef sitenin sertifikasının geçerli olup olmadığını kontrol edin.
 - Yerel ServBay sitelerinde ServBay’in CA’sı ile imzalanmış sertifika kullanıyorsanız, bu doküman ya da ServBay’in SSL belgelerinde anlatıldığı şekilde 
--cacertile CA paketi yolunu belirtin. - Sadece test amaçlı, hassas olmayan işlemlerde 
--insecureseçeneğini geçici olarak kullanabilirsiniz (üretim ortamı için önerilmez). 
 
Özet 
cURL, güçlü ve esnek bir komut satırı aracıdır ve web geliştiricileri için vazgeçilmezdir. ServBay’in entegre cURL desteği sayesinde, yerel geliştirme ortamınızda basit HTTP isteklerinden karmaşık API çağrılarına ve dosya işlemlerine kadar birçok veri aktarım ve ağ testi işlemini kolayca gerçekleştirebilirsiniz. cURL’ün temel ve ileri düzey kullanımına hakim olmak, geliştirme verimliliğinizi ve sorun giderme yetkinliğinizi önemli oranda artıracaktır.
