Curl Nedir? Curl Komutu Nasıl Kullanılır?

Linux’da curl nedir? Çoğu Unix bazlı sistemde mevcut olan bir komuttur ve “Client URL”nin kısaltılmışıdır. Curl komutları URL’lerin bağlanabilirliğini kontrol etmek ve veri transferi için harika bir araç olarak kullanılmak için üretilmiştir. Curl nedir tanımını yaptığımıza göre hadi nasıl kullanacağınızı öğrenmeye başlayabilirsiniz.

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

Başka desteklenen komutların da bulunmasıyla beraber listedeki komutlar en önemli protokollerdir. Curl, istemci tarafındaki ücretsiz bir URL transfer kütüphanesidir.

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

Curl nedir öğrendiğinize göre artık kullanmaya başlayabilirsiniz. Ancak, önce VPS’e giriş yapmanız gerekmektedir. Bununla ilgili yardıma ihtiyacınız varsa SSH hakkındaki bu makaleye bir göz atın.

İlk önce Curl’ün hangi sürümünü kullandığınızı aşağıdaki komutla kontrol edin:

curl --version

Bu komudun sonucunda Curl desteklenen protokollerin bir listesini gösterecektir. Şimdi bazı Curl komutu örneklerine bakabiliriz.

Basit Curl Command Sözdizimi

Hadi Curl komutlarını nasıl kullanacağımızı öğrenelim. Curl’ün basit sözdizimi böyledir:

curl [OPTIONS] [URL]

Curl’ün en basit kullanımı bir sayfanın içeriklerini göstermektir. Aşağıdaki örnek testalanadi.com’un ana sayfasının içeriklerini gösterecektir:

curl testalanadi.com

Bu, alan adı için ana sayfanın kaynak kodunu verecektir. Eğer herhangi bir kontrol belirlenmediyse curl bunu HTTP’ye yorumlayacaktır.

Curl Komutu Dosya Seçenekleri

Curl komutları uzak bir konumdan dosyaları indirebilir. Bunu iki farklı yoldan yapabilirsiniz:

  • -O komutu mevcut çalışan dizinde dosyayı uzaktakiyle aynı isimde kaydedecektir.
  • -o komutu ise farklı bir dosya veya klasör adı belirlemenize izin verecektir.

Bunun bir örneği aşağıdaki gibidir:

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

Yukarıdaki komut bu dosyayı testdosyasi.tar.gz olarak kaydedecektir.

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

Yukarıdaki komut bu dosyayı yenitestdosyasi.tar.gz olarak kaydedecektir.

Eğer bir sebepten dolayı indirmeniz durursa curl komutu kullanarak devam ettirebilirsiniz. Bunu aşağıdaki komutla yapabilirsiniz:

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

Curl kullanarak bu dosyayı bir kereden fazla aşağıdaki gösterildiği gibi indirebiliriz:

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

Eğer birden çok URL’den birden çok dosya indirmek isterseniz hepsini bir dosyada listeleyin. Curl komutları farklı URL’leri indirmek için xargs ile birleştirerek indirebilirsiniz.

Örneğin eğer butunUrller.txt adında indirilecek tüm URL’lerin bir listesini içeren dosyaya sahipseniz aşağıdaki örneği bütün dosyaları indirmek için kullanabilirsiniz.

xargs –n 1 curl -O < butunUrller.txt

HTTP için Curl Komutları

Curl proxy sunucusu varken de kullanabilir. Örneğin ornekproxy.com’da 8090 portunda olan bir proxy sunucusundaysınız, aşağıdaki gösteren dosyaları indirin:

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

Yukarıda gösterilen örnekte eğer proxy bir doğrulama yöntemi kullanmıyorsa -U kullaniciadi:sifre‘yi atlayabilirsiniz.

Tipik bir HTTP isteği daima bir başlık içerecektir. HTTP başlığı uzaktaki web sunucusu hakkında istekle beraber ek bilgi yollayacaktır. Bir tarayıcının geliştiri araçları üzerinden başlık bilgisini kontrol edebilirken curl komutu kullanarak da doğrulayabilirsiniz.

Aşağıdaki komuttan bir web sitesinden başlık bilgisi almanın alabilirsiniz.

curl -I www.testalanadi.com

Curl kullanarak GET ve POST istekleri yapabilirsiniz. Bir GET isteği aşağıdaki gibidir:

curl http://benimalanadim.com

Sırada ise bir POST isteği örneği:

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

Buradaki text=Merhaba POST isteği parametresidir. Bu tıpkı HTML formlarına benzerdir.

Ayrıca birden çok HTTP yöntemlerini tek bir curl komutunda belirleyebilirsiniz. Bunu – next seçeneğini kullanarak yapın:

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

Bu bir GET isteği tarafından takip edilen bir POST isteğidir.

Her HTTP isteğin bir parçası olarak yollanan bir kullanıcı aracısına sahiptir. Bu istemcinin web tarayıcı detaylarını belirtir. Varsayılaran olarak bir curl isteiği kullanıcı aracısı bilgileri olarak curl’ü ve sürüm numarasını içerir. İşte aşağıda bu komutun örnek sonucu:

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

Bu varsayılan kullanıcı aracısının bilgilerini aşağıdaki komutu kullanarak değiştirebilirsiniz:

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

Değişen sonuç böyle olacaktır:

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

Çerezler için Curl

Curl komutları herhangi bir URL’de hangi çerezlerin indirildiğini kontrol etmek için kullanılabilir. Eğer https://www.ornekwebsite.com‘a erişiyorsanız sonucu bir dosyaya çıkarabilir, çerezleri kaydedebilir ve cat veya bir VM editörü kullanarak erişebilirsiniz.

Aşağıda bu türden örnek bir komut:

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

Tıpkı bunun gibi eğer çerezleri bir dosyada tutarsanız web siteye yollayabilirsiniz. Böyle bir komutun örneği aşağıdaki gibidir:

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

FTP için Curl

Curl komutu FTP de destekler! Bu komutları uzak bir sunucudan dosyalar indirmek için kullanabilirsiniz.

curl -u kullaniciadi:sifre -O ftp://ornekftpsunucusu/testdosyasi.tar.gz

Yukarıdaki komutta ftp://ornekftpsunucusu bağlantıları kabul eden bir FTP sunucusudur. Kullanıcı adı ve şifre anonim FTP bağlantıları için es geçilebilir. Komutu girin ve ilerleme çubuğunun dolmasını ilerleyin.

Aşağıdaki komutla dosyaları da karşıya yükleyebilirsiniz:

curl -u kullaniciadi:sifre -T testdosyasi.tar.gz ftp://ornekftpsunucusu

Yine, anonim FTP bağlantıları için kullanıcı adı ve şifreyi atlayabilirsiniz.

Curl Sonucunu Sınırlama

Bir curl komutu kullanırken sonucun ne kadar büyük olacağını bilemezsiniz. Trafiği sınırlayarak curl tarafından boğulmasını engelleyebilirsiniz.

Aşağıdaki komut trafiği 100 bine sınırlar:

curl --limit-rate 100K http://testalanadi.com/testdosyasi.tar.gz -O

Sonuç

Curl yaygın biçimde kullanılan güçlü bir komuttur. Komut satırına muhtaç olduğunuzda kullanışlıdır. Birçok seçeneği bulunmaktadır ve birden çok protolü destekler. Bu, bu komutu öğrenmek için çok iyi bir sebeptir!

Unutmayın, eğer daha gelişmiş komutları öğrenmek istiyorsanız basitçe bütün Unix versiyonlarında olması gereken dökümanları okuyabilirsiniz. Bunun içinse:

man curl

Umuyoruz ki bu makalede Curl nedir sorusuna cevap verebilmiş ve size bu komutu kullanma konusunda yardımcı olmuşuzdur. Siz curl komutunu nasıl kullanacaksınız? Aşağıdaki yorumlar kısmında bizimle paylaşın!

Author
Yazar

Gökhan O.

Gökhan Hostinger’da YouTube Takım Lideri olarak çalışmakta. WordPress hakkındaki tecrübe ve bilgisini bu blogda paylaşıyor. Hostinger’ın adını YouTube içeriği üzerinden duyurmayı kendine görev edinmiştir. Hobileri arasında oyun oynamak ve futbol maçları izlemek vardır.