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:
curl --version
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.
curl -X GET https://api.servbay.demo/data
Ya da, varsayılan yöntem GET olduğu için daha sade şekilde:
curl https://api.servbay.demo/data
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.
curl -X POST -d "param1=value1¶m2=value2" https://api.servbay.demo/data
Dosya İndirme
cURL ile dosya indirmek son derece kolaydır. -O
bayrağı ile dosya uzak sunucudaki orijinal adıyla kaydedilir.
curl -O https://servbay.demo/file.zip
Farklı bir dosya adıyla kaydetmek isterseniz, -o
seçeneğini kullanın:
curl -o local_filename.zip https://servbay.demo/file.zip
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
curl -X POST -F "file=@/Applications/ServBay/www/servbay.demo/upload/document.pdf" https://api.servbay.demo/upload
/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.
curl -H "Content-Type: application/json" -H "Authorization: Bearer your_token_here" https://api.servbay.demo/data
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.
curl -X POST -H "Content-Type: application/json" -d '{"key1":"value1", "key2":"value2"}' https://api.servbay.demo/data
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.
curl -s https://api.servbay.demo/data | jq .
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.
curl -c cookies.txt https://servbay.demo
Ç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.
curl -b cookies.txt https://servbay.demo/profile
Proxy Kullanımı
Bir proxy sunucusu üzerinden internete erişmeniz gerekiyorsa, -x
(veya --proxy
) ile proxy adresini belirtebilirsiniz.
curl -x http://proxy.servbay.demo:8080 https://api.servbay.demo/data
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.
curl --limit-rate 100K https://servbay.demo/largefile.zip -O
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.
curl -C - -O https://servbay.demo/largefile.zip
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.
curl --cacert /path/to/custom_ca.crt https://secure.servbay.demo
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.
curl --insecure https://secure.servbay.demo
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
zsh
hem debash
iç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
--cacert
ile CA paketi yolunu belirtin. - Sadece test amaçlı, hassas olmayan işlemlerde
--insecure
seç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.