CURL Nedir? Nasıl Kullanılır?

Curl komutları, veri aktarımı için olağanüstü bir araç olarak tasarlanmıştır ve URL’lerin bağlanabilirliğini kontrol etmek için üretilmiştir

Curl, belirli bir URL için çok çeşitli İnternet Protokolleri aracılığıyla veri aktarmak için kullanılan nesne yönelimli programlama yazılımıdır. URL sözdizimi içindeki dosyaların aktarımına izin veren bir komut satırı yardımcı programıdır. Curl, temel olarak, URL'lere bağlantıyı kontrol etmek ve veri aktarımını kolaylaştırmak için çalışacak şekilde tasarlanmış komutlara sahip olan bir istemci tarafı programıdır. Curl'ün yaratıcısı Daniel Stenberg, onu bir dizi protokolle farklı sunuculara bağlanmanıza ve bunlarla etkileşim kurmanıza izin veren bir kitaplık olarak tanımlar. Curl, veri aktarmak için komut satırlarında veya betiklerde kullanılır.

Curl ayrıca arabalarda, televizyon setlerinde, yönlendiricilerde, yazıcılarda, ses ekipmanlarında, cep telefonlarında, tabletlerde, set üstü kutularda, medya oynatıcılarda kullanılır ve on milyardan fazla kurulumda, binlerce yazılım uygulaması için İnternet aktarım motorudur. Curl ücretsiz ve açık kaynaklı bir yazılımdır. İstemci URL'si anlamına gelen cURL, geliştiricilerin bir sunucuya ve sunucudan veri aktarmak için kullandıkları bir komut satırı aracıdır. Unix bazlı sistemlerin çoğunda bulunan bir komut olan Curl, “Cilent URL”nin kısaltılmış halidir. Curl komutları, veri aktarımı için olağanüstü bir araç olarak tasarlanmıştır ve URL’lerin bağlanabilirliğini kontrol etmek için üretilmiştir. Tasarı esnasında bütünleşik olduğu kütüphane libcurl ve komut satırı biçimi curl üzerinden tanımlanmaktadır. 

İstemci taraflı URL aktarım kütüphanesi olan libcurl; Android, Windows, Unix temelli işletim sistemleri gibi birçok platformda çalışır. FTP, HTTPS,SCP, IMAP, FTPS,POP3,SMTP gibi birçok protokolü destekler. Aynı şekilde, C/C++, Go, Java,PHP, Phyton, R gibi programlama dillerini de desteklemektedir. Bu, cURL'yi yerel bir sunucudan çoğu uç cihaza hemen hemen her cihazdan iletişimi test etmek için ideal kılar.

curl komut satırı aracını belirtir.

cURL, bahsedilen curl ve libcurl’ü içerisinde bulunduran yazılım tasarısının adıdır. 

CURL PHP ile birlikte kullanılan libcurl işlemlerini ifade etmektedir.

curl bütünleşik olarak libcurl kütüphanesini kullanır. URL sözdizimini uygulayarak komut satırı üzerinden veri almak ve göndermek için kullanılmaktadır. 

CURL Komutu Kullanımı

Tıpkı herhangi bir Linux komutunda olduğu gibi, cURL ile çalışmaya başlamadan önce VPS'mizde oturum açmamız gerekiyor. Curl, bugün var olan herhangi bir platformda ve herhangi bir donanımda çalışabilir, ancak bazı sistemler önceden yüklenmiş olarak gelirken, bazılarının çalışması için manuel kurulum gerekir. cURL, Windows ve macOS'ta önceden yüklenmiş olarak gelir. Aksi takdirde, paketi cURL web sitesinden indirebilirsiniz. Curl, uzak sistemlere HTTP, HTTPS, TELNET ve çok çeşitli diğer protokoller üzerinden bağlantıyı desteklediğinden, bir komut dosyası tıpkı yerel bir dosya/veri akışı gibi uzak bir sistemden bilgilere erişmek istediğinde kullanılır. Bu, uzaktaki bir sistemden veri almak ve yerel olarak sahip oldukları gibi sunmak isteyen geliştiriciler için çok önemlidir. Curl bir terminalde veya komut isteminde kullanılabilir, ancak kullanmaya çalışmadan önce kullandığınız sistemde kurulu olduğundan emin olmanız gerekir. CURL komutu, farklı amaçlar için diğer seçeneklerle birlikte verilerin aktarılacağı veya veri alınacağı URL'yi alır. Curl'daki en temel komut curl http://ornek.com. Curl komutunu, bir tür veri almak istediğimiz URL izler. Bu durumda, ornek.com için html kaynağını döndürür. Komut işlendiğinde web sitesinin kaynak kodunun dönmesinin sebebi curl’ün ön tanımlı olarak çıktıyı stdout vermesi halidir. İlaveten, HTTPS protokolü üzerinden komut işleme alındığında curl, varsayılan olarak SSL sertifika doğrulaması yapar. Uzak sunucu self-signed bir sertifikaya sahip ise veya geçerli bir Certificate Authority tarafından imzalanmamışsa curl hata döndürür. Bu durumda -k ya da -insecure ile sertifika doğrulaması es geçilir. 

Kullanımı yapısal olarak wget ile benzeşir ve her ikisin de HTTP çerezlerini destekler. Etkileşimli işlemlerde script kullanabilir ve metalink desteklemektedir. 

Komut satırı vasıtası ile HTTP, HTTPS ve FTP üzerinden indirme işlemi sağlayabilir ve HTTP POST talebi iletmek mümkündür. curl, çok çeşitli seçenekleri kabul eder, bu da onu son derece çok yönlü bir komut yapar. Seçenekler bir veya iki tire ile başlar. Ek değerler gerektirmiyorsa, tek tireli seçenekler birlikte yazılabilir. Örneğin, -0, -L ve -v seçeneklerini kullanan komut şu şekilde yazılabilir:

curl -0Lv [url]

cURL PHP, PHP programlarının PHP içindeki curl işlevlerine erişmesini mümkün kılan bir modüldür. Örneğin, curl exec, PHP'de GET/POST isteklerini çağırmayı ve JSON gibi diğer sunuculardan yanıt almayı ve dosya indirmeyi daha kolay ve hızlı hale getiren bir komut satırıdır.

Peki, neden cURL kullanmalısınız? Bu yazılım projesinin şu faydalarını göz önünde bulundurun:

  • Son derece taşınabilir. Hemen hemen her işletim sistemi ve bağlı cihazla uyumludur.
  • Bitim noktalarını test etmek, çalışıp çalışmadıklarını denetlemek için kullanışlıdır.
  • Tam olarak neyin gönderildiğine/alındığına dair ayrıntılar sağlayan ayrıntılı olabilir, bu da hata ayıklama için yararlıdır.
  • İyi hata günlüğüne sahiptir. 
  • Oran sınırlı olabilir.

Bir Kaynağa Veri Gönder

API istekleri göndermek için curl kullanabiliriz. Her istek genellikle dört ana bölümden oluşur:

HTTP yöntemi. En yaygın kullanılan yöntemler GET, POST, PUT ve DELETE’tir.

  • GET, sunucudan kaynak almak için kullanılır. Bu bir dosya, bilgi veya görüntü olabilir.
  • POST, sunucuya bilgi göndermek için kullanılır.
  • PUT, bir kaynak oluşturmak veya güncelleştirmek için kullanılabilir. Bu, veritabanındaki bir kaydı oluşturmak veya güncelleştirmek ya da bir dosyanın içeriğini güncelleştirmek için kullanılabilir.
  • DELETE, veritabanı girdisi gibi bir kaynağı silmek için kullanılır.

Bu yöntemler için bu eylemler, önerilen eylemlerdir ancak tam olarak ne olacağını tanımlamak API belirtimine ve uygulamasına bağlıdır.

POST yöntemini ve cURL komutunu kullanarak, verileri bir API aracılığıyla bir sunucuya aktarabilirsiniz. API, verileri işler, ardından verileri bir veritabanına kaydetmek gibi adımlar atar ve isteğinizin durumunu gösteren bir yanıt döndürür. Bir URL'ye POST isteği yapmak için -X seçeneğini kullanın ve değer olarak POST yöntemini iletin. Ancak istekle birlikte veri eklemeye ne dersiniz? --data için bir takma ad olan başka bir seçenek olan -d (tire ve küçük harf d) kullanırsınız.

cURL için Yaygın Kullanım Örnekleri

API platformları genellikle bir URL'ye veri istemek ve aktarmak için sezgisel arayüzler sağlarken, cURL terminalle birlikte kullanmak için harika bir araç olabilir. Burada, cURL komutu için bazı yaygın kullanım örnekleri verilmiştir.

cURL, herhangi bir API tabanlı uygulama indirmek zorunda kalmadan terminalinizden API'leri hızlı bir şekilde test etmenize olanak tanır.

Terminalin dosya sistemine erişimi olduğundan, URL'lerden görüntüleri de kolayca indirebilirsiniz.

CURL'nin sizin için çalışmasını sağlayın.

cURL, farklı protokoller altında bir URL üzerinden veri talep etmenize ve aktarmanıza izin veren bir CLI aracıdır. Terminaldeki URL'lerin esnekliğini ve kontrolünü sağlar.

Terminalde CURL kullanmak basittir, ancak her kullanıcı tarafından kullanımı sezgisel olmayabilir. URL'yi ve gereken seçenekleri sağlayarak, URL'lerden veri isteyebilir ve indirebilir, URL'lere veri aktarabilir ve daha fazlasını yapabilirsiniz.

cURL güçlü ve yaygın olarak kullanılan bir komuttur. Komut satırına bağımlı olduğunuzda kullanışlıdır. Birkaç seçeneğe sahiptir ve birden çok protokolü destekler. Bu komutu öğrenmek için oldukça harika bir sebep.

Unutmayın, bazı gelişmiş komutları öğrenmek istiyorsanız, tüm Unix sürümlerinde olması gereken kılavuza bakın.