LinuxYazılım

Curl Nedir ? Curl Komutlarının Kullanımı

Curl, yani “Client URL” çoğu Unix işletim sisteminde bulunan bir komuttur.  Curl komutları URL’lerin bağlanabilip bağlanamadığını kontrol edilmesini ve veri transferleri için kullanılacak muhteşem bir araçtır.

Bu yazımızda Curl nedir Curl komutu nasıl kullanılır gibi soruların cevabını sizler için paylaşacağız.

Curl Nedir? Curl Komutlarının Kullanımı

Curl komutları aşağıdaki protokolleri destekler:

  • HTTP ve HTTPS
  • FTP ve FTPS
  • IMAP ve IMAPS
  • POP3 ve POP3S
  • SMB ve SMBS
  • SFTP
  • SCP
  • TELNET
  • GOPHER
  • LDAP ve LDAPS
  • SMTP ve SMTPS

Yukarıda belirttiğimiz komutlar en önemli protokollerdir. Desteklenen farklı komutlar da mevcuttur. Curl aslında istemci tarafın bulunan ücretsiz bir URL transfer sistemidir.

Curl Sürümünü Kontrol Etme:

Curl kelimesinin anlamını artık öğrendiğinize göre yazıyı okumaya devam edebilirsiniz. Fakat, ilk yapmanız gereken şey VPS’ye giriş yapmaktır.

İlk olarak Curl’ün hangi sürümünü kullandığınızı öğrenmek için  aşağıdaki komutu kullanın:

curl --version

 

Bu komut kullanıldıktan sonra önünüze Curl’u destekleyen protokollerin bir listesi gelecektir. Aşağıda bazı  Curl komutu örneklerinden bahsedeceğiz.

Basit Curl Command Sözdizimi

Curl’ün basit sözdizimi aşağıda belirttiğimiz gibidir:

curl [OPTIONS] [URL]

Curl’ün en basit kullanım alanı bir sayfanın içeriğinde neler olduğunu göstermektir. Örneğin aşağıda testalanadiniz.com’un ana sayfasının içeriklerini gösteren bir komuttur.

curl testalanadiniz.com

Yukarda belirttiğimiz örnekteki alan adı için ana sayfanın kaynak kodunu görmeye yarayacaktır. Herhangi bir kontrol sağlanamadıysa curl bunu HTTP’ye yorumlayacaktır.

Curl Komutu Dosya Seçenekleri

Curl komutları uzak bir konumdan dosyaları iki farklı yol ile indirebilir.

  • -O komutu mevcut çalışan klasörde bulunan dosyayı uzak bir konumdaki klasör aynı isimde kaydedecektir.
  • -o komutu ise farklı bir dosya veya klasör ismi belirlemenizi sağlayacaktır.

Buna aşağıdaki gibi bir örnek verilebilir:

curl -O http://testalanadiniz.com/testdosyasi.tar.gz

Yukarıda bulunan komut bu dosyayı testdosyasi.tar.gz olarak kaydedilmesini sağlayacaktır.

curl -o yenitestdosyasi.tar.gz http://testalanadiniz.com/testdosyasi.tar.gz

Yukarıda belirttiğimiz örnekte komut dosyayı yenitestdosyasi.tar.gz olarak kaydedilmesini sağlayacaktır.

Herhangi bir nedenden dolayı indirmeniz de bir sıkıntı çıkarsa curl komutu kullanıp devam etmesini sağlayabilirsiniz. Bunu aşağıda belirttiğimiz komutu kullanarak yapabilirsiniz:

curl -C - -O  http://testalanadiniz.com/testdosyasi.tar.gz

Bu dosyayı bir defadan fazla indirmek için Curl kullanarak aşağıda belirtildiği gibi yapabilirsiniz.

curl -O http://testalanadiniz.com/testdosyasi.tar.gz -O http://benimalanadim.com/myfile.tar.gz

Eğer birden fazla URL ve birden fazla dosya indirmeyi düşünüyorsanız tümünü bir dosyada listeleyin. Curl komutları birbirinden farklı URL’leri indirmek için xargs ile birleştirerek indirme işlemini gerçekleştirebilirsiniz.

Örneğin tumUrller.txt adı ile indirilecek bütün URL’lerin bir listesini bulunduran dosyaya sahipseniz eğer aşağıdaki gösterdiğimiz örneği tüm dosyaların indirilme işlemi  için kullanabilirsiniz.

xargs –n 1 curl -O < tumUrller.txt

HTTP için Curl Komutları

Curl proxy sunucusu bulunduğu zaman da kullanılabilir. Örneğin testproxy.com’da 8090 portunda olan bir proxy sunucusu kullanıyorsanız, aşağıda belirtilen dosyaları indirmeniz gerekiyor:

curl -x  testproxy.com:8090 -U kullaniciadi:sifre -O http://testalanadiniz.com/testdosyasi.tar.gz

Yukarıda belirtilen örnekte eğer proxy bir doğrulama sistemi kullanmıyorsa -U kullaniciadi:sifre kısmını silebilirsiniz.

Standart bir HTTP isteği daima bir başlık içermek zorundadır. HTTP başlığı uzaktaki web sunucusu ile ilgili bilgilerin istekleri ile birlikte ek bilgi gönderecektir. Bir tarayıcının kullandığı araçlar üzerinden başlık bilgisinin kontrolü sağlanırken ayrıca curl komutu kullanarak da doğrulanması mümkündür.

Aşağıdaki belirtilen komuttan bir internet sitesinden başlık bilgisi alabilirsiniz.

curl -I www.testalanadiniz.com

Ayrıca Curl kullanarak GET ve POST istekleri de yapmanız mümkündür. Bir GET isteği aşağıda belirtilen örnekteki gibi yapılmaktadır.

curl http://seninalanadin.com

POST isteği aşağıda belirtilen örnekteki gibi yapılmaktadır:

curl –data “text=Merhaba” https://seninalanadin.com/firstPage.jsp

Bu örnekte text=Merhaba POST isteği parametresidir. Bu tıpkı HTML formlarına benzemektedir.

Birden fazla HTTP yöntemlerini bir curl komutunda belirleyebilmeniz de mümkündür. Bunu – next seçeneği ile yapabilirsiniz:

curl –data “text=Merhaba” https://seninalanadin.com/firstPage.jsp --next https://seninalanadin.com/displayResult.jsp

Yukarıda belirttiğimiz örnek GET isteğinin takip ettiği bir POST isteğidir.

Her HTTP isteğin bir parçası olarak gönderilen bir kullanıcı aracısına sahiptir. Bu istemci web tarayıcı detaylarını gösterir. Varsayılan olarak bir curl isteği kullanıcı aracısı bilgileri olarak curl ve sürüm numarasını bulundurur. Aşağıda bu komuta bir örnek verdik:

“GET / HTTP/1.1” 200 “_” ”curl/7/29/0”

Yukarıdaki varsayılan kullanıcı aracısının bilgilerini aşağıdaki komutu ile değiştirmeniz mümkündür:

curl -I http://seninalanadin.com –-user-agent “Yeni tarayıcım”

Değişen sonuç aşağıdaki gibi olacaktır:

“GET / HTTP/1.1” 200 “_” ”Yeni tarayıcım”

Çerezler için Curl

Curl komutları herhangi bir URL’de hangi çerezlerin yüklendiğinin kontrolü için kullanılır. Eğer https://www.testwebsite.com‘a bağlanabiliyorsanız sonucu bir dosyaya alabilir, çerezleri kaydedebilir ve cat veya bir VM editörü kullanarak erişimi sağlayabilirsiniz.

Yukarıda belirttiğimiz komutun aşağıda bir örneği mevcuttur:

curl --cookie-jar Cerezlerim.txt https://www.testwebsite.com /index.html -O

Aynı şekilde çerezleri bir dosyada tutmak isterseniz eğer web siteye gönderebilirsiniz. Bu şekilde bir komutun örneği aşağıda mevcuttur.

curl --cookie Cerezlerim.txt https://www.testwebsite.com

FTP için Curl

Curl komutunu FTP de desteklemektedir. Bu komutları konumu uzak olan bir sunucu kullanarak dosyaların indirilmesinde kullanabilirsiniz.

curl -u kullaniciadi:sifre -O ftp://testftpsunucusu/ornekdosya.tar.gz

Yukarıdaki örnek komutta ftp://testftpsunucusu bağlantıları kabul eden bir FTP sunucusuna aittir.  Anonim FTP bağlantılarında kullanıcı adı ve şifreyi geçebilirsiniz. Komutu girin ve yüklenme çubuğunun dolması için ilerleyin.

Aşağıdaki komutu kullanarak dosyaların karşıya yüklenmesini sağlayabilirsiniz.

curl -u kullaniciadi:sifre -T ornekdosya.tar.gz ftp://testftpsunucusu

Aynı şekilde anonim FTP bağlantılarında kullanıcı adı ve şifreyi geçebilirsiniz.

Curl Sonucunu Sınırlama

Bir curl komutu kullanırken sonucunun büyüklüğünü tahmin edemeyiz. Trafiği sınırlayarak curl tarafından yoğunluk oluşmasını engelleyebilirsiniz.

Aşağıda belirttiğimiz komut trafiği 100 bine ile sınırlamaktadır:

curl --limit-rate 100K http://testalanadiniz.com/ornekdosya.tar.gz -O

Sonuç

Curl çoğu kişi tarafından kullanılan güçlü bir komuttur. Komut satırına ihtiyaç duyduğunuz zaman çok kullanışlıdır. Birçok seçeneği bulundurmakla birlikte birden fazla protolü desteklemektedir.

Umuyoruz ki bu yazımız ile Curl nedir sorusu ile size bu komutun kullanımı konusunda yardımcı olmuşuzdur.

Curl Nedir? Curl Komutu Nasıl Kullanılır? başlıklı yazımız ile ilgili aklınıza takılan sorularınızın yanıtını alabilmeniz için veya öneride bulunabilmeniz için aşağıda yer alan yorumlar kısmını kullanarak bizimle iletişime geçebilirsiniz.

Dilerseniz daha önce bloğumuzda paylaştığımız 15 Temel Linux Komutu başlıklı yazımızı da okuyabilirsiniz.

 

Serhat Yılmaz

Blog sayfamızda bilişim sektöründe edinmiş olduğum bilgi ve deneyimleri paylaşmaktayız. Yazılarımıza yorumlarınızı katarak bizleri mutlu edebilirsiniz.

Related Articles

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Back to top button