
cURL Nedir? Sunucularda Nasıl Kullanılır?
curl nedir Sunucularda Nasıl Kullanılır? Windows, Linux ve yazılım projelerinde cURL komutlarıyla API, HTTP ve sunucu testlerini öğrenin.

Cenk ŞEKERCİ
Operasyon Yöneticisi
Bir sunucuda bağlantı testi yapmak, bir API’ye istek göndermek veya bir dosyayı terminalden indirmek istediğinizde cURL çoğu zaman en hızlı araçtır. curl nedir Sunucularda Nasıl Kullanılır? sorusunun cevabı, yalnızca bir komut satırı aracı değil; HTTP, HTTPS, FTP ve benzeri protokollerle çalışan pratik bir test ve veri aktarım aracıdır.
İçindekiler
- curl nedir
- curl nedir yazılım
- curl nasıl kullanılır
- curl nedir linux
- curl nedir windows
- Sunucularda cURL kullanım senaryoları
- cURL komutlarında dikkat edilmesi gerekenler
- Sıkça Sorulan Sorular
- İlgili içerikler
curl nedir
cURL, komut satırı üzerinden URL tabanlı veri aktarımı yapmayı sağlayan açık kaynaklı bir araçtır. HTTP, HTTPS, FTP, SMTP ve daha birçok protokolü destekler. Sunucularda en sık web servislerini test etmek, API yanıtlarını kontrol etmek ve bağlantı sorunlarını analiz etmek için kullanılır.
cURL’ün temelinde “client URL” mantığı vardır. Yani bir istemci gibi davranır, belirtilen adrese istek gönderir ve gelen yanıtı terminalde gösterir.
Basit bir örnek:

curl https://example.com
Bu komut, ilgili web adresine GET isteği gönderir ve sunucudan dönen HTML çıktısını terminale basar.
| Özellik | Açıklama |
|---|---|
| Araç türü | Komut satırı veri aktarım aracı |
| Kullanım alanı | API testi, bağlantı kontrolü, dosya indirme |
| Desteklediği protokoller | HTTP, HTTPS, FTP, SMTP, IMAP, LDAP ve diğerleri |
| Platform desteği | Linux, Windows, macOS |
| Lisans | Açık kaynak |
İpucu: cURL, tarayıcı açmadan bir web adresinin gerçekten yanıt verip vermediğini görmek için oldukça kullanışlıdır.
curl nedir yazılım
Yazılım tarafında cURL, uygulamalar arasında veri alışverişini test etmek ve HTTP isteklerini simüle etmek için kullanılır. Özellikle REST API, webhook, mikroservis ve backend geliştirme süreçlerinde hızlı doğrulama sağlar.
Bir geliştirici için cURL, “tarayıcı dışı istek gönderme” aracıdır. Örneğin bir API endpoint’ine GET, POST, PUT veya DELETE isteği gönderebilir; header, token ve JSON veri taşıyabilir.
Yazılım geliştirmede cURL ne işe yarar?
- API endpoint testleri yapılır.
- JSON veri gönderimi denenir.
- HTTP durum kodları kontrol edilir.
- Yetkilendirme token’ları test edilir.
- Webhook yanıtları doğrulanır.
- Backend servislerinin erişilebilirliği ölçülür.
Örnek bir API isteği:
curl -X GET https://api.example.com/users
JSON veri gönderme örneği:
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d '{"name":"Ali","email":"ali@example.com"}'
| Yazılım senaryosu | cURL ile yapılabilecek işlem |
|---|---|
| REST API testi | GET, POST, PUT, DELETE isteği gönderme |
| Kimlik doğrulama | Bearer token veya API key ile deneme |
| Webhook kontrolü | Servisin veri alıp almadığını test etme |
| Hata ayıklama | HTTP status code ve response inceleme |
| CI/CD süreçleri | Otomatik sağlık kontrolü yapma |
Uyarı: Gerçek API anahtarlarını, token’ları veya oturum bilgilerini terminal geçmişinde bırakmamaya dikkat edin. Özellikle paylaşımlı sunucularda bu ciddi bir güvenlik riski oluşturabilir.
curl nasıl kullanılır
cURL kullanımı, temel olarak curl komutunun ardından hedef URL’nin yazılmasıyla başlar. Daha gelişmiş işlemlerde -X, -H, -d, -I, -o gibi parametrelerle istek türü, başlık bilgisi, veri ve çıktı ayarları belirlenir.
En temel kullanım:
curl https://example.com
Sadece HTTP başlıklarını görmek için:
curl -I https://example.com
Dosya indirmek için:
curl -O https://example.com/dosya.zip
Farklı isimle kaydetmek için:
curl -o yeni-dosya.zip https://example.com/dosya.zip
Sık kullanılan cURL parametreleri
| Parametre | Görevi | Örnek kullanım |
|---|---|---|
| `-I` | Sadece response header bilgisini gösterir | `curl -I site.com` |
| `-X` | HTTP metodunu belirtir | `curl -X POST site.com` |
| `-H` | Header ekler | `curl -H "Accept: application/json"` |
| `-d` | Veri gönderir | `curl -d "a=1"` |
| `-o` | Çıktıyı dosyaya kaydeder | `curl -o dosya.html site.com` |
| `-L` | Yönlendirmeleri takip eder | `curl -L site.com` |
| `-v` | Detaylı bağlantı çıktısı verir | `curl -v site.com` |
HTTP durum kodu kontrolü
Sunucu yanıtını hızlıca ölçmek için şu komut kullanılabilir:
curl -o /dev/null -s -w "%{http_code}\n" https://example.com
Bu komut sadece HTTP durum kodunu döndürür. Örneğin 200 başarılı yanıtı, 301 yönlendirmeyi, 404 bulunamayan sayfayı, 500 ise sunucu hatasını gösterir.
curl nedir linux
Linux’ta cURL, terminal üzerinden ağ istekleri göndermek için kullanılan en yaygın araçlardan biridir. Çoğu sunucu dağıtımında hazır gelir; kurulu değilse paket yöneticisiyle kolayca yüklenebilir.
Ubuntu ve Debian tabanlı sistemlerde kurulum:
sudo apt update
sudo apt install curl
CentOS, AlmaLinux veya Rocky Linux üzerinde:
sudo dnf install curl
Kurulum kontrolü:
curl --version
Linux sunucularda cURL genellikle şu işler için kullanılır:
- Web sitesinin erişilebilirliğini test etme
- API servislerini kontrol etme
- SSL sertifika yanıtlarını inceleme
- Dosya indirme
- Load balancer arkasındaki yanıtları test etme
- Cron job içinde otomatik istek gönderme
Linux sunucuda pratik testler
Bir alan adının yanıt verip vermediğini test etmek:
curl -I https://siteadi.com
Yönlendirme zincirini takip etmek:
curl -IL https://siteadi.com
Detaylı bağlantı çıktısı almak:
curl -v https://siteadi.com
| Linux kullanım amacı | Önerilen komut |
|---|---|
| Site ayakta mı kontrolü | `curl -I https://site.com` |
| Yönlendirme kontrolü | `curl -IL https://site.com` |
| SSL/TLS bağlantı inceleme | `curl -v https://site.com` |
| Dosya indirme | `curl -O dosya-url` |
| API POST testi | `curl -X POST -d ...` |
Bilgi kutusu: Linux’ta
curl -vçıktısı, DNS çözümleme, IP bağlantısı, TLS el sıkışması ve HTTP yanıtı gibi adımları gösterir. Bu nedenle bağlantı hatalarını ayırmak için değerlidir.
curl nedir windows
Windows’ta cURL, komut satırı veya PowerShell üzerinden kullanılabilen bir veri aktarım aracıdır. Güncel Windows 10 ve Windows 11 sürümlerinde cURL genellikle sistemle birlikte gelir; ayrıca manuel olarak da kurulabilir.
Kurulu olup olmadığını kontrol etmek için Komut İstemi veya PowerShell’de şu komutu çalıştırabilirsiniz:
curl --version
Basit kullanım:
curl https://example.com
Windows tarafında dikkat edilmesi gereken nokta, PowerShell’de bazı komut davranışlarının klasik terminalden farklı olabilmesidir. Özellikle tırnak kullanımı, JSON gönderimi ve özel karakterler test edilirken Komut İstemi veya Windows Terminal daha öngörülebilir sonuç verebilir.
Windows ve Linux cURL farkları
| Kriter | Windows | Linux |
|---|---|---|
| Kurulum | Yeni sürümlerde çoğunlukla hazır gelir | Çoğu dağıtımda hazırdır veya paket yöneticisiyle kurulur |
| Terminal | CMD, PowerShell, Windows Terminal | Bash, Zsh, Fish |
| JSON kullanımı | Tırnak kaçışlarına dikkat gerekir | Genelde daha sade yazılır |
| Otomasyon | PowerShell scriptleriyle kullanılabilir | Bash script ve cron ile yaygındır |
| Sunucu kullanımı | Windows Server’da mümkündür | Web sunucularında daha yaygındır |
Windows’ta JSON POST örneği:
curl -X POST https://api.example.com/login -H "Content-Type: application/json" -d "{\"user\":\"admin\",\"pass\":\"123456\"}"
Uyarı: Örneklerdeki kullanıcı adı ve parola temsili olarak verilmiştir. Gerçek sistemlerde parolayı komut satırına açık şekilde yazmak yerine güvenli değişkenler veya secret yönetimi kullanmak daha doğru olur.
Sunucularda cURL kullanım senaryoları
Sunucularda cURL, yalnızca “bir URL’ye istek atma” aracı değildir; servis sağlığı, DNS, SSL, yönlendirme ve API yanıtlarını hızlıca analiz etmeye yarar. Özellikle SSH ile bağlanılan ortamlarda grafik arayüz olmadan test yapmayı kolaylaştırır.
En yaygın sunucu senaryoları
| Senaryo | Amaç | Örnek komut |
|---|---|---|
| Web sitesi kontrolü | Sunucu yanıt veriyor mu? | `curl -I https://site.com` |
| API sağlık kontrolü | Endpoint çalışıyor mu? | `curl https://api.site.com/health` |
| Yönlendirme testi | 301/302 zinciri doğru mu? | `curl -IL https://site.com` |
| Header kontrolü | Cache, server, content-type bilgisi | `curl -I https://site.com` |
| İç ağ testi | Servis portu yanıtlıyor mu? | `curl http://10.0.0.5:8080` |
cURL, özellikle “sunucu çalışıyor ama site açılmıyor” gibi durumlarda sorunun uygulamada mı, ağda mı, DNS tarafında mı olduğunu anlamayı kolaylaştırır.
Örneğin sadece belirli bir IP’ye domain üzerinden istek göndermek için:
curl --resolve site.com:443:192.168.1.10 https://site.com
Bu komut, DNS’i geçici olarak atlayıp belirli IP üzerinden test yapmanızı sağlar.
cURL komutlarında dikkat edilmesi gerekenler
cURL güçlü bir araçtır, ancak yanlış kullanıldığında güvenlik ve gizlilik riski oluşturabilir. Özellikle token, parola, cookie ve özel header bilgileri komut geçmişinde kalabileceği için dikkatli kullanılmalıdır.
Dikkat edilmesi gerekenler:
- Gerçek parolaları doğrudan komuta yazmayın.
- API token’larını paylaşılabilir log dosyalarına kaydetmeyin.
-kveya--insecureparametresini kalıcı çözüm gibi kullanmayın.- Üretim ortamında test yaparken istek yoğunluğuna dikkat edin.
- Yetkiniz olmayan sistemlere test isteği göndermeyin.
-k parametresi SSL sertifika doğrulamasını devre dışı bırakır:
curl -k https://example.com
Bu parametre sadece geçici testlerde kullanılmalıdır. Sertifika hatasını yok saymak yerine, hatanın nedenini çözmek daha sağlıklıdır.
| Riskli kullanım | Neden sorunlu? | Daha doğru yaklaşım |
|---|---|---|
| Parolayı komuta yazmak | Terminal geçmişinde kalabilir | Ortam değişkeni kullanmak |
| `-k` ile sürekli test | SSL sorununu gizler | Sertifikayı düzeltmek |
| Token’ı loglamak | Yetkisiz erişim riski doğurur | Maskelenmiş log kullanmak |
| Çok sık istek atmak | Servis yükünü artırır | Rate limit uygulamak |
Sıkça Sorulan Sorular
cURL ne işe yarar?
cURL, komut satırı üzerinden web adreslerine ve servis uç noktalarına istek göndermek için kullanılır. Web sitesi erişim testi, API kontrolü, dosya indirme, HTTP header inceleme ve sunucu hata ayıklama gibi birçok işte işe yarar. Tarayıcı açmadan bir sunucunun nasıl yanıt verdiğini görmek isteyen geliştiriciler ve sistem yöneticileri için pratik bir araçtır.
cURL ile wget arasındaki fark nedir?
cURL daha çok veri aktarımı, API testi ve farklı protokollerle esnek istek gönderme için kullanılır. wget ise özellikle dosya ve web içeriği indirme işlemlerinde güçlüdür. cURL header, method, body ve authentication yönetiminde daha esnektir. wget ise toplu indirme, recursive download ve bağlantı koptuğunda devam etme gibi dosya odaklı işlemlerde tercih edilebilir.
cURL güvenli midir?
cURL güvenli bir araçtır; risk genellikle kullanım şeklinden kaynaklanır. API token’ını komut satırına açık yazmak, --insecure parametresini alışkanlık haline getirmek veya hassas çıktıları log dosyasına kaydetmek sorun yaratabilir. Güvenli kullanım için token’ları environment variable içinde tutmak, SSL doğrulamasını kapatmamak ve komut geçmişini kontrol etmek gerekir.
cURL ile API testi yapılır mı?
Evet, cURL API testi için en yaygın kullanılan araçlardan biridir. GET, POST, PUT, PATCH ve DELETE gibi HTTP metodlarını destekler. Header ekleme, JSON veri gönderme, bearer token kullanma ve yanıt kodu ölçme gibi işlemler kolayca yapılabilir. Basit testlerde ek araca ihtiyaç bırakmaz; karmaşık senaryolarda ise otomasyon betiklerine dahil edilebilir.
cURL Windows’ta çalışır mı?
Evet, cURL Windows’ta çalışır. Güncel Windows 10, Windows 11 ve Windows Server sürümlerinde çoğu zaman hazır olarak gelir. Komut İstemi, PowerShell veya Windows Terminal üzerinden kullanılabilir. JSON gönderirken tırnak işaretlerine dikkat etmek gerekir; çünkü PowerShell ve CMD bazı karakterleri Linux terminalinden farklı yorumlayabilir.
cURL Linux’ta nasıl kurulur?
Linux’ta cURL çoğu dağıtımda hazır gelir. Kurulu değilse Ubuntu ve Debian sistemlerinde sudo apt install curl, CentOS/Rocky/AlmaLinux sistemlerinde sudo dnf install curl komutuyla kurulabilir. Kurulumdan sonra curl --version komutu çalıştırılarak sürüm ve desteklenen protokoller görülebilir.
cURL ile sadece HTTP durum kodu nasıl alınır?
Sadece HTTP durum kodunu almak için curl -o /dev/null -s -w "%{http_code}\n" https://site.com komutu kullanılabilir. Bu komut sayfa içeriğini göstermez, yalnızca yanıt kodunu verir. Monitoring, uptime kontrolü ve basit sağlık testleri için oldukça kullanışlıdır. 200 başarılı yanıtı, 404 bulunamayan sayfayı, 500 ise sunucu hatasını ifade eder.
cURL ile dosya indirilebilir mi?
Evet, cURL ile dosya indirilebilir. Dosyayı orijinal adıyla kaydetmek için curl -O dosya-url, farklı bir isimle kaydetmek için curl -o yeni-ad.zip dosya-url komutu kullanılır. Büyük dosyalarda bağlantı ve yetki kontrolleri önemlidir. İndirme yapılan kaynağın güvenilir olması ve dosyanın doğrulanması tavsiye edilir.
cURL komutu neden çalışmaz?
cURL komutu; aracın kurulu olmaması, DNS hatası, SSL sertifika problemi, yanlış URL, firewall engeli veya sunucunun yanıt vermemesi nedeniyle çalışmayabilir. Sorunu anlamak için önce curl --version, ardından curl -v https://adres komutları denenebilir. -v çıktısı bağlantının hangi aşamada başarısız olduğunu görmeye yardımcı olur.
cURL ile header bilgisi nasıl görüntülenir?
Bir sitenin HTTP header bilgisini görmek için curl -I https://site.com komutu kullanılır. Bu çıktı status code, content-type, cache-control, server ve redirect bilgilerini gösterebilir. Teknik SEO, CDN kontrolü, cache doğrulama ve yönlendirme testlerinde header bilgisi önemli ipuçları verir.
İlgili içerikler
- Linux Sunucu Yönetimi İçin Temel Komutlar
- REST API Nedir ve Nasıl Çalışır?
- HTTP Durum Kodları Ne Anlama Gelir?
- SSL Sertifikası Nedir ve Nasıl Kontrol Edilir?
- Sunucu Performans Testi Nasıl Yapılır?
Netlen'i Google'da Takip Edin
En güncel rehberlerimize, duyurularımıza ve teknik içeriklerimize Google üzerinden öncelikli ulaşmak için Netlen'i tercih ettiğiniz kaynaklar arasına ekleyin.
Bu yazıyı paylaşın

Yazar Hakkında
Cenk ŞEKERCİ
Operasyon Yöneticisi
Bulut teknolojileri, ağ altyapıları ve veri merkezi operasyonları üzerine çalışıyorum. Öğrendiğim yeni teknolojileri ve sahada karşılaştığım gerçek deneyimleri anlaşılır şekilde paylaşmayı seviyorum.
Yorumlar
Bu yazı hakkında okuyucu yorumları


