Pazar , 20 Eylül 2020
Home » Teknoloji » Komut satırı HTTP aracı -cURL

Komut satırı HTTP aracı -cURL

cURL, HTTP istemci olarak bilinse de aslında FTP, LDAP, SMTP, vb birçok popüler internet protokolü için istemci olarak kullanılabilmektedir. Komut satırından kullanılan cURL protokol işlemleri için birçok dilde binding’i bulunan libcurl adlı kütüphaneyi kullanır. Bu binding’ler sayesinde herhangi bir programlama dilinde geliştirilen bir uygulamada libcurl  tarafından desteklenen internet protokolleri kolaylıkla uygulamaya entegre edilebilmektedir. Sonuç olarak etrafımızda gördüğümüz birçok cihazda  libcurl kullanılmaktadır.

Yukarıdaki kısa girişten sonra şimdi cURL'i HTTP istemci olarak güçlü kılan özellikleri tanımaya başlayalım. cURL'in en çok kullanılan özelliği şüphesiz bir URL'nin erişilebilir olup olmadığını kontrol etmektir. Aşağıda bir örnek gösterilmiştir.

Komut satırı HTTP aracı -cURL 1 –

Anlaşıldığı üzere yukarıdaki örnekte ilgili URL’e bir HTTP GET isteği atılmıştır. PUT, POST, DELETE tipinde HTTP istekleri atmak için -X (--request) opsiyonu kullanılır. Aşağıdaki örnekte sunucuya bir PUT isteği gönderilmiştir.

Komut satırı HTTP aracı -cURL 2 – 1*S8eD7JMXqMqZVXw2XYD6Gg

HTTP isteğinin header’ına eklenmek istenen parametreler için -H (–header) opsiyonu kullanılır. Aşağıdaki örnekte bir önceki ekran çıktısında gönderilen istek tekrarlanmış fakat bu kez istek içeriğinin JSON olduğu header yardımıyla belirtilmiştir.

Komut satırı HTTP aracı -cURL 3 – 1*hlBEIqeShSQjM3Hu T6mAw

HTTP isteklerinin cevapları (özellikle dosya indirilirken), ekran yerine bir dosyaya yönlendirilebilir. -O, (–remote-name) opsiyonu bu amaçla kullanılır ve indirilen dosyayı uzaktaki kaynakla aynı isimle isimlendirir. -o, (–output) ile ise dosya ismi değiştirilebilir.

Komut satırı HTTP aracı -cURL 4 – 1*tvqDRNltIo4cyXB7mIWmCA

Yukarıda verilen bazı ekran çıktılarında progress bar görülmekte bazılarında ise görülmemektedir. cURL'in çıktısı gerek -O veya -o gerekse de pipe | ile stdout (ekran) dışında bir dosyaya yönlendirildiğinde stdout'ta progress bar gösterilmektedir.

cURL çıktısı ekrana verildiğinde, normal çıktı ile karışmaması için progress bar gizlenmektedir. Bazı durumlarda cURL’in çıktısı dosyaya yönlendirilse bile ekranda progress bar’in görüntülenmesi istenmeyebilir. progress bar’i gizlemek için -s, (–silent) kullanılır.

Komut satırı HTTP aracı -cURL 5 – 1*TdhvlWHXqS 8pwOSjjyN2g

cURL ön tanımlı olarak web sunucunun redirect taleplerini takip etmemektedir. redirect’lerin takip edilmesi için -L, (–location) kullanılabilir. cURL ön tanımlı olarak maksimum 50 redirect isteğini takip etmektedir. Bu sayı –max-redirs ile değiştirilebilir.

cURL ile yapılan HTTP isteği ve alınan cevabın header’lar ve diğer detayları ile birlikte görüntülenmesi için -v, (–verbose) opsiyonu kullanılabilir. Bu opsiyon yeterli gelmezse –trace ya da –trace-ascii opsiyonları kullanılabilir.

Komut satırı HTTP aracı -cURL 6 – 1*AQ9ERsAd5g4GkmKZPXT8ew

Otomasyon betiklerinde kullanıldığında cURL'in 2xx olmayan sunucu cevaplarında hata tespiti için 0'dan farklı bir çıkış kodu üretmesini isteriz. Bu durumda -f, (--fail) opsiyonu kullanılır.

Komut satırı HTTP aracı -cURL 7 –

Geliştirme ortamlarında bulunan self-signed sertifikalara yapılan HTTPS isteklerinde sertifika hatalarını atlatmak için -k, (--insecure) opsiyonu kullanılır.

Komut satırı HTTP aracı -cURL 8 – 1*8H20m2n PNB5EwQUzifE2g

cURL popüler olarak kullanıldığı için HTTP ile ilgili birçok araç cURL komutlarının üretilmesini kolaylaştırmaktadır. Aşağıda Chrome’dan yapılan bir isteğin cURL karşılığının nasıl üretileceği gösterilmiştir.

Komut satırı HTTP aracı -cURL 9 – 1*l5jClGgQXA gi2Qfp20Rpw

Son olarak cURL yaptığı HTTP isteği ile ilgili detaylı zamanlama bilgisini tutmaktadır. Bu bilgi sayesinde performans problemi olan isteklerin hangi aşamada (TCP, DNS, sunucu, vb) yavaş olduğu tespit edilebilir.

Komut satırı HTTP aracı -cURL 10 – 1*tIWTUTXEF6F8NXSpjon7aA

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir