10 Коришћење команде цУРЛ са примером у реалном времену

cURL je alatka komandne linije koja se koristi za preuzimanje ili slanje podataka putem URL sintakse.

Za programere i tehničku podršku, razumevanje i korišćenje cURL komande je ključno za rešavanje problema sa web aplikacijama. cURL je višeplatformski uslužni program, što znači da ga možete koristiti na Windows, macOS i UNIX sistemima.

U nastavku su navedene neke od najčešćih sintaksi, zajedno sa primerima koji će vam pomoći da ih savladate.

Provera konekcije sa URL-om

Ako radite na UNIX sistemu i želite da proverite vezu sa spoljnim URL-om, prvi korak je testiranje pristupa pomoću cURL-a.

Komanda izgleda ovako: curl vasurl.com

U slučaju uspešne konekcije, nećete dobiti nikakav izlaz. Međutim, ako server nije dostupan, dobićete poruku o grešci, na primer, „nije uspelo rešavanje hosta“.


[[email protected] tmp]# curl helloitdoesntexist.com
curl: (6) Could not resolve host: helloitdoesntexist.com; Unknown error
[[email protected] tmp]#

Čuvanje izlaza URL-a/URI-ja u datoteku

Za čuvanje sadržaja URL-a ili URI-ja u određenu datoteku, koristite sledeću sintaksu:

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

Primer:


[[email protected] 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
[[email protected] tmp]#

Ovaj primer će sačuvati kompletan sadržaj sajta gf.dev u datoteku /tmp/gf.html.

Prikazivanje zaglavlja zahteva i odgovora

Ako imate poteškoća i želite da proverite zaglavlja zahteva i odgovora, koristite ovu komandu:

curl -v vasurl.com

Primer:


[[email protected] tmp]# curl -v https://techblog.co.rs.com
* About to connect() to techblog.co.rs.com port 443 (#0)
*   Trying 104.25.134.107...
* Connected to techblog.co.rs.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: techblog.co.rs.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=.techblog.co.rs.com; HttpOnly; Secure
< Vary: Accept-Encoding
< Link: <https://techblog.co.rs.com/wp-json/>; rel="https://api.w.org/"
< Link: <https://techblog.co.rs.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
<

Preuzimanje sa ograničenom brzinom

Ako želite da testirate vreme preuzimanja pri određenoj brzini, možete koristiti ovu opciju:

curl --limit-rate 2000B

Na primer:

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

Korišćenje proksija za povezivanje

Ovo je korisno kada radite na serveru u DMZ okruženju, gde je za pristup internetu potreban proksi:

curl --proxy vasproksi:port https://vasurl.com

Možete koristiti cURL za slanje zaglavlja sa podacima za testiranje ili rešavanje problema. Pogledajte sledeći primer sa zaglavljem Content-Type:

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

Ovom komandom se postavlja zaglavlje Content-Type na application/json.

Za brzo proveravanje zaglavlja odgovora koristite ovu sintaksu:

curl --head http://vasurl.com

Primer:


[[email protected] 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

[[email protected] tmp]#

Povezivanje na HTTPS/SSL URL i ignorisanje SSL grešaka

Kada pokušate da pristupite zaštićenom URL-u sa SSL/TLS sertifikatom, a dođe do greške zbog neispravnog sertifikata ili nepodudaranja CN-a, dobićete sledeću grešku:

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

Možete naložiti cURL-u da ignoriše greške sa sertifikatom koristeći zastavicu --insecure.

curl --insecure https://vasurl.com

Povezivanje koristeći određeni protokol (SSL/TLS)

Ovo je korisno za testiranje da li određeni URL podržava određeni SSL/TLS protokol.

Za povezivanje pomoću SSL v3, koristite:

curl --sslv3 https://vasurl.com

A za različite verzije TLS-a:

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

Preuzimanje datoteke sa FTP servera

cURL se može koristiti i za preuzimanje datoteka sa FTP servera, uz navođenje korisničkog imena i lozinke.

curl -u korisnik:lozinka -O ftp://ftpurl/stil.css

Možete koristiti -v sa bilo kojom sintaksom za prikazivanje detaljnih informacija.

Zaglavlje hosta je korisno za testiranje ciljne URL adrese putem IP adrese kada je sadržaj dostupan samo ako se zaglavlje hosta podudara. Takođe je korisno za testiranje aplikacija koristeći IP/URL balansere opterećenja.

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

Kako koristiti cURL online?

Da, to je moguće pomoću sledećih alata. Možete izvršavati cURL komande na daljinu.

Online cURL – lagan alat za preuzimanje URL-ova online uz mogućnost dodavanja sledećih opcija:


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

cURL Builder – ovaj alat je drugačiji. Omogućava vam da kreirate cURL komandu u prijatnom korisničkom okruženju, a zatim dobijete odgovarajuću cURL komandu na dnu stranice.

cURL je koristan uslužni program za rešavanje problema sa povezivanjem u realnom vremenu, nadam se da će vam ove informacije biti korisne. Za više informacija, preporučujem online kurs Osnove Linux komandne linije.