Gerçek Zamanlı Örnek ile 10 cURL Komut Kullanımı
Yayınlanan: 2015-02-12cURL, 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.

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.