Komut Referansı

Linux curl Komutu Ne İşe Yarar?

Linux curl Komutu Ne İşe Yarar?

Modern işletim sistemlerinde ağ üzerinden veri alıp göndermek, yazılım geliştiriciler ve sistem yöneticileri için günlük işlerin başında gelir. Linux ortamında bu ihtiyacı karşılayan en güçlü ve esnek araçların başında ise curl gelir. Komut satırından ağ istekleri başlatmayı mümkün kılan bu araç, basit bir web sayfası getirme işleminden karmaşık API testlerine kadar geniş bir kullanım alanına sahiptir.

curl Komutu Nedir?

curl, açılımı “Client URL” olan ve desteklenen ağ protokollerini kullanarak sunucular arasında veri transferi gerçekleştiren bir komut satırı aracıdır. HTTP, HTTPS, FTP, FTPS, SFTP, SCP ve LDAP gibi çok sayıda protokolü destekler. Arka planda libcurl kütüphanesini kullanan araç, kullanıcı etkileşimi gerektirmeden çalışabildiği için betik (script) otomasyonlarında ve sürekli entegrasyon süreçlerinde sıklıkla tercih edilir.

curl komutu, bir web tarayıcısının grafiksel arayüz arkasında yaptığı HTTP isteklerini doğrudan terminal penceresinde simüle etmenize olanak tanır. Sunucuya giden başlıkları, gelen durum kodlarını, çerezleri ve ham veri gövdelerini detaylı biçimde görebilmek, hata ayıklama ve güvenlik testleri açısından curl aracını vazgeçilmez kılar.

Temel Sözdizimi ve Çalışma Mantığı

curl aracının genel kullanım yapısı oldukça basittir. Terminalde komutun adını yazdıktan sonra istek türünü belirleyen parametreler ve hedef sunucu adresi (URL) eklenir:

curl [seçenekler] [URL]

Hiçbir parametre verilmeden doğrudan bir web adresi yazıldığında, curl komutu belirtilen hedefe standart bir HTTP GET isteği gönderir ve sunucudan dönen ham HTML veya metin çıktısını terminal ekranına (standart çıktıya) basar:

curl https://example.com

Bu komut çalıştırıldığında example.com adresinin kaynak kodu ekranda akar. Çıktıyı doğrudan ekranda görmek yerine bir dosyaya yazmak veya farklı HTTP davranışlarını tetiklemek için ek parametreler kullanılır.

En Sık Kullanılan curl Parametreleri

curl komutunun yüzlerce farklı seçeneği bulunsa da günlük kullanımda öne çıkan belli başlı parametreler vardır. Bu seçenekler veri akışını denetlemenize ve sunucuyla olan iletişimi yapılandırmanıza yardımcı olur:

  • -o: Uzak sunucudan gelen veriyi belirtilen dosya adıyla yerel diske kaydeder.
  • -O: Uzaktaki dosyanın adını koruyarak yerel dizine kaydeder.
  • -I: Yalnızca HTTP yanıt başlıklarını (headers) görüntüler, gövde verisini almaz.
  • -i: Yanıt başlıklarını yanıt gövdesiyle birlikte ekrana basar.
  • -L: Sunucudan bir yönlendirme (301 veya 302 yönlendirmesi) geldiğinde yeni adresi otomatik olarak takip eder.
  • -X: Varsayılan HTTP metodunu (GET) değiştirerek POST, PUT, DELETE gibi metotları belirler.
  • -d: POST veya PUT isteklerinde sunucuya iletilecek veriyi taşır.
  • -H: İsteğe özel bir HTTP başlığı ekler (örneğin Authorization veya Content-Type).
  • -u: Temel kimlik doğrulama için kullanıcı adı ve parola tanımlar.
  • -k: SSL/TLS sertifika doğrulama hatalarını görmezden gelir (güvenlik testleri ve geliştirme ortamları için kullanılır).
  • -s: İlerleme çubuğunu ve hata mesajlarını gizleyerek sessiz modda çalışır.

Uygulamalı curl Örnekleri

Parametrelerin işlevini anlamanın en iyi yolu, yaygın kullanım senaryolarını terminal üzerinde test etmektir. Aşağıdaki örnekler curl komutunun sunduğu temel işlevleri gösterir.

Dosya İndirme

Bir sunucudaki arşivi veya görseli komut satırından indirmek için -O parametresi kullanılır:

curl -O https://example.com/dosyalar/yedek.zip

Bu işlem dosyanın uzak sunucudaki adıyla (yedek.zip) geçerli dizine indirilmesini sağlar. İndirilen dosyaya farklı bir ad vermek için -o tercih edilir:

curl -o yerel_yedek.zip https://example.com/dosyalar/yedek.zip

HTTP Başlıklarını İnceleme

Ağ sorunlarını analiz ederken veya bir sunucunun hangi yazılımları çalıştırdığını kontrol ederken tüm web sayfasını indirmek gerekmez. Yalnızca yanıt başlıklarını incelemek için -I kullanılır:

curl -I https://example.com

Bu komutun çıktısında HTTP durum kodu (örneğin 200 OK), sunucu tipi, içerik türü ve çerez bilgileri listelenir.

Yönlendirmeleri Takip Etme

Bazı web siteleri ziyaretçileri otomatik olarak HTTPS sürümüne ya da farklı bir adrese yönlendirir. Varsayılan olarak curl yönlendirmeleri izlemez; yalnızca yönlendirme uyarısını gösterir. Yönlendirilen nihai hedefe ulaşmak için -L parametresi eklenmelidir:

curl -L http://example.com

POST İsteği Gönderme ve API Testi

Modern web uygulamalarında REST API testleri curl ile hızlıca gerçekleştirilir. JSON formatında veri içeren bir POST isteği göndermek için -X, -H ve -d parametreleri birlikte kullanılır:

curl -X POST https://api.example.com/v1/kullanicilar -H "Content-Type: application/json" -d '{"ad": "Ahmet", "rol": "yonetici"}'

Burada -X POST HTTP metodunu belirtir, -H sunucuya gönderilen verinin JSON türünde olduğunu bildirir ve -d parametresi JSON gövdesini taşır.

Temel Kimlik Doğrulama ile Veri Alma

Erişimi parola ile sınırlandırılmış bir uç noktadan veri çekmek gerektiğinde -u seçeneği kullanılır:

curl -u kullanici_adi:gizli_parola https://api.example.com/ozel-rapor

Bu komut, kullanıcı adı ve parolayı Base64 formatında kodlayarak Authorization başlığı altında sunucuya iletir.

curl ve wget Arasındaki Temel Farklar

Linux kullanıcıları veri transferi dendiğinde çoğunlukla curl ve wget araçlarını karşılaştırır. İki araç benzer görünse de tasarım hedefleri farklıdır:

  • wget öncelikli olarak dosya indirme odaklıdır. Bir web sitesini alt bağlantılarıyla birlikte özyinelemeli (recursive) olarak yerel diske kopyalayabilir.
  • curl ise çift yönlü bir veri transfer aracıdır. Yalnızca veri çekmekle kalmaz; POST, PUT veya DELETE istekleriyle veri gönderimi yapar.
  • curl çok sayıda farklı protokolü doğal olarak destekler ve API entegrasyonu için daha gelişmiş başlık denetimi sunar.
  • wget özyinelemeli indirme yeteneğine sahipken, curl komutu tek bir komutla tüm site haritasını takip etme özelliğine varsayılan olarak sahip değildir.

Özet ve Sonraki Adımlar

Linux curl komutu, komut satırı üzerinden ağ protokolleriyle etkileşime girmenin en esnek yoludur. Web sayfalarının kaynak kodlarını görüntülemekten dosya indirmeye, API uç noktalarını test etmekten kimlik doğrulama süreçlerini denetlemeye kadar geniş bir işlevsellik sunar.

curl kullanımında uzmanlaşmak için bir sonraki aşamada komut çıktılarını jq gibi JSON işleyicilerle filtrelemeyi deneyebilir, bash betikleri içerisine curl istekleri yerleştirerek periyodik sağlık kontrolleri ve otomatik veri yedekleme mekanizmaları kurgulayabilirsiniz.

#ag yonetimi#api testi#curl komutu#linux#terminal

Комментарии

Комментариев пока нет. Будьте первым.

Оставить комментарий

Комментарии публикуются после одобрения администратором.