Gerçek Zamanlı Örnek ile 10 cURL Komut Kullanımı

Yayınlanan: 2015-02-12

cURL, URL sözdizimini kullanarak veri almak veya göndermek için kullanılan bir komut satırı aracıdır.

Geliştirici olarak veya destek işlevinde çalışıyorsanız, web uygulamalarında sorun gidermek için cURL komut kullanımının farkında olmalısınız. cURL, Windows, MAC ve UNIX'te kullanabileceğiniz bir çapraz platform yardımcı programıdır.

Aşağıda, size yardımcı olacak bir örnekle en çok kullanılan sözdizimlerinden bazıları verilmiştir.

URL'ye bağlanıp bağlanamadığınızı doğrulayın

Bir UNIX sistemi üzerinde çalışıyorsanız ve harici URL'ye bağlanmaya çalışıyorsanız, yapmak istediğiniz ilk şey URL'ye curl yoluyla erişip erişemeyeceğinizi kontrol etmektir.

curl yoururl.com

Herhangi bir çıktı atmayacaktır. Ancak, sunucu bağlanamazsa, ana bilgisayarı çözemedi gibi hatalar alırsınız.

 [root@gf-lab tmp]# curl helloitdoesntexist.com curl: (6) Could not resolve host: helloitdoesntexist.com; Unknown error [root@gf-lab tmp]#

URL/URI çıktısını dosyaya kaydet

URL veya URI içeriğini belirli bir dosyaya kaydetmeniz gerekiyorsa, aşağıdaki sözdizimini kullanabilirsiniz.

 curl https://yoururl.com > yoururl.html

eski:

 [root@gf-lab tmp]# curl https://gf.dev > /tmp/gfhtml % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 18557 0 18557 0 0 72565 0 --:--:-- --:--:-- --:--:-- 72772 [root@gf-lab tmp]#

Yukarıdaki örnek, tüm içeriği gf.dev'den /tmp/gf.html'ye kaydedecektir.

İstek ve yanıt başlığını göster

Sorun yaşıyorsanız ve doğrulamak istiyorsanız, beklenen istek ve yanıt başlığını alıyorsunuz.

 curl -v yoururl.com

Eski:

 [root@gf-lab tmp]# curl -v https://geekflare.com * About to connect() to geekflare.com port 443 (#0) * Trying 104.25.134.107... * Connected to geekflare.com (104.25.134.107) port 443 (#0) * Initializing NSS with certpath: sql:/etc/pki/nssdb * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * SSL connection using TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 * Server certificate: * subject: CN=ssl371609.cloudflaressl.com,OU=PositiveSSL Multi-Domain,OU=Domain Control Validated * start date: Nov 07 00:00:00 2019 GMT * expire date: May 15 23:59:59 2020 GMT * common name: ssl371609.cloudflaressl.com * issuer: CN=COMODO ECC Domain Validation Secure Server CA 2,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB > GET / HTTP/1.1 > User-Agent: curl/7.29.0 > Host: geekflare.com > Accept: */* > < HTTP/1.1 200 OK < Date: Sat, 09 Nov 2019 19:41:37 GMT < Content-Type: text/html; charset=UTF-8 < Transfer-Encoding: chunked < Connection: keep-alive < Set-Cookie: __cfduid=d2ce6cd359ebc0b6eb5ff3a454ed042021573328497; expires=Sun, 08-Nov-20 19:41:37 GMT; path=/; domain=.geekflare.com; HttpOnly; Secure < Vary: Accept-Encoding < Link: <https://geekflare.com/wp-json/>; rel="https://api.w.org/" < Link: <https://geekflare.com/>; rel=shortlink < X-SRCache-Fetch-Status: HIT < X-SRCache-Store-Status: BYPASS < X-Frame-Options: SAMEORIGIN < X-Powered-By: EasyEngine v4.0.12 < Via: 1.1 google < CF-Cache-Status: DYNAMIC < Strict-Transport-Security: max-age=15552000; preload < X-Content-Type-Options: nosniff < Alt-Svc: h3-23=":443"; ma=86400 < Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" < Server: cloudflare < CF-RAY: 533243e4bcd4bbf4-LHR <

Sınırlı bir oranda indirin

Optimizasyon üzerinde çalışıyorsanız ve belirli bir hızda indirmenin ne kadar sürdüğünü görmek istiyorsanız, şunları yapabilirsiniz:-

 curl –-limit-rate 2000B

Eski:

 curl –-limit-rate 2000B https://gf.dev

Bağlanmak için bir proxy kullanma

Bir proxy kullanarak dış dünyaya bağlanmanız gereken DMZ sunucusunda çalışıyorsanız çok kullanışlıdır.

 curl --proxy yourproxy:port https://yoururl.com

URL'yi enjekte eden başlıkla test edin

Belirli bir sorunu test etmek veya gidermek için verilerinizle birlikte bir başlık ekleyerek curl kullanabilirsiniz. Content-Type ile istek yapmak için aşağıdaki örneği görelim.

 curl --header 'Content-Type: application/json' http://yoururl.com

Yukarıdakileri yaparak, istek başlığında Content-Type'ı application/json olarak iletmek için curl istiyorsunuz.

Yalnızca yanıt başlığını görüntüle

Bazı sorun giderme işlemleri yapıyorsanız ve yanıt başlığını hızlı bir şekilde kontrol etmek istiyorsanız, aşağıdaki sözdizimini kullanabilirsiniz.

 curl --head http://yoururl.com

Eski:

 [root@gf-lab tmp]# curl --head https://chandan.io HTTP/1.1 200 OK Date: Sat, 09 Nov 2019 19:51:23 GMT Content-Type: text/html Connection: keep-alive Set-Cookie: __cfduid=d3cb2c7b8e566ad99c870b0af12b0f1eb1573329083; expires=Sun, 08-Nov-20 19:51:23 GMT; path=/; domain=.chandan.io; HttpOnly X-GUploader-UploadID: AEnB2Uo96JhvJmR2zYUL-Ndh2ta3UD_ykQAB5C7O8cjZQhCf-GxHQ0MsodSzRnl3guSN3ywAYNjtWcPXfwDXjLg3bQ-P5vQMOA Expires: Sat, 09 Nov 2019 20:51:23 GMT Cache-Control: public, max-age=3600 Last-Modified: Mon, 06 Aug 2018 10:45:47 GMT x-goog-generation: 1533552347482034 x-goog-metageneration: 1 x-goog-stored-content-encoding: identity x-goog-stored-content-length: 24620 x-goog-hash: crc32c=DpDPAQ== x-goog-hash: md5=cIP/3rusdUx12Zla1kf1yA== x-goog-storage-class: MULTI_REGIONAL Accept-Ranges: bytes CF-Cache-Status: DYNAMIC Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" Server: cloudflare CF-RAY: 53325234dc2fbb9a-LHR [root@gf-lab tmp]#

HTTPS/SSL URL'sini bağlayın ve herhangi bir SSL sertifikası hatasını yoksayın

SSL/TLS sertifikası güvenli URL'sine erişmeye çalıştığınızda ve bu yanlış sertifikaya sahipse veya CN eşleşmiyorsa, aşağıdaki hatayı alırsınız.

 curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.

İyi haber, --insecure bayrağıyla sertifika hatasını yoksaymasını söyleyebilirsiniz.

 curl --insecure https://yoururl.com

Belirli bir protokol (SSL/TLS) kullanarak bağlanın

Belirli bir URL'nin belirli bir SSL/TLS protokolü üzerinden anlaşıp anlaşamayacağını test etmek için çok kullanışlıdır.

SSL v3 kullanarak bağlanmak için

 curl --sslv3 https://yoururl.com

ve farklı TLS sürümleri için

 curl --tlsv1 https://example.com curl --tlsv1.0 https://example.com curl --tlsv1.1 https://example.com curl --tlsv1.2 https://example.com curl --tlsv1.3 https://example.com

FTP Sunucusundan dosya indirin

Kullanıcı adınızı ve şifrenizi belirterek dosyayı indirmek için curl kullanabilirsiniz.

 curl -u user:password -O ftp://ftpurl/style.css

Ayrıntılı modda yazdırmak için her zaman herhangi bir sözdizimi ile “ -v ” kullanabilirsiniz.

Ana Bilgisayar Başlığını Kullanma

Ana bilgisayar başlığı, istenen içerik yalnızca ana bilgisayar başlığı eşleştiğinde kullanılabilir olduğunda IP üzerinden hedef URL'yi test etmek için kullanışlıdır. Veya uygulamayı yük dengeleyici IP/URL kullanarak test etmek istiyorsanız.

 curl --header 'Host: targetapplication.com' https://192.0.0.1:8080/

cURL'yi çevrimiçi kullanmaya ne dersiniz?

Evet, aşağıdaki araçlarla bu mümkündür. cURL'yi uzaktan çalıştırabilirsiniz.

Çevrimiçi CURL – URL'yi çevrimiçi almak için hafif bir araç ve aşağıdaki seçenekleri ekleme imkanı.

 --connect-timeout --cookie --data --header --head --location --max-time --proxy --request --user --url --user-agent

cURL komut satırı oluşturucu – bu farklı. Nice UI'da bilgi girebileceğiniz curl komutunu oluşturmanıza yardımcı olur ve altta cURL komutunu alırsınız.

kıvrım oluşturucu

cURL, gerçek zamanlı bir bağlantı sorununu gidermek için yararlı bir yardımcı programdır ve umarım yukarıdakiler size yardımcı olur. Daha fazlasını öğrenmek istiyorsanız, Linux Komut Satırı Temelleri çevrimiçi kursunu tavsiye ederim.