03/29/2024

10 Utilizarea comenzii cURL cu exemplu în timp real

cURL este un instrument de linie de comandă pentru a obține sau trimite date folosind sintaxa URL.

Dacă lucrați ca dezvoltator sau în funcția de asistență, trebuie să fiți conștient de utilizarea comenzii cURL pentru a depana aplicațiile web. cURL este un utilitar multiplatformă care înseamnă că îl puteți utiliza pe Windows, MAC și UNIX.

Următoarele sunt câteva dintre cele mai utilizate sintaxe, cu un exemplu care să vă ajute.

Verificați dacă vă puteți conecta la adresa URL

Dacă lucrați pe un sistem UNIX și încercați să conectați adresa URL externă, primul lucru pe care doriți să-l faceți este să verificați dacă puteți accesa adresa URL prin curl.

curl yoururl.com

Nu va arunca nicio ieșire. Cu toate acestea, dacă serverul nu se poate conecta, atunci veți primi erori precum gazda nu a putut rezolva.

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

Salvați rezultatul URL/URI în fișier

Dacă trebuie să salvați conținutul URL sau URI într-un anumit fișier, puteți utiliza următoarea sintaxă

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

ex:

[[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]#

Exemplul de mai sus va salva tot conținutul de la gf.dev la /tmp/gf.html

  MailTrack vă anunță când e-mailul dvs. a fost livrat și citit [Chrome]

Afișați antetul cererii și răspunsului

Dacă aveți probleme și doriți să validați, primiți antetul așteptat de cerere și răspuns.

curl -v yoururl.com

Ex:

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

Descărcați la o rată limită

Dacă lucrați la optimizare și doriți să vedeți cât timp durează descărcarea la o anumită viteză, puteți:-

curl –-limit-rate 2000B

Ex:

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

Utilizarea unui proxy pentru a vă conecta

Foarte util dacă lucrați pe serverul DMZ unde trebuie să vă conectați la lumea externă folosind un proxy.

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

Puteți utiliza curl inserând un antet cu datele dvs. pentru a testa sau depana problema anume. Să vedem următorul exemplu pentru a solicita cu Content-Type.

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

Făcând mai sus, îi cereți lui curl să treacă Content-Type ca aplicație/json în antetul solicitării.

  Ciclul de viață al dezvoltării software (SDLC): un ghid complet

Dacă faceți unele depanare și doriți să verificați rapid antetul răspunsului, puteți utiliza următoarea sintaxă.

curl --head http://yoururl.com

Ex:

[[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]#

Conectați URL HTTPS/SSL și ignorați orice eroare de certificat SSL

Când încercați să accesați URL securizat cu certificat SSL/TLS și dacă acesta are certificatul greșit sau CN nu se potrivește, atunci veți primi următoarea eroare.

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

Vești bune, puteți indica cURL să ignore eroarea de certificare cu –insecure flag.

curl --insecure https://yoururl.com

Conectați-vă folosind un protocol specific (SSL/TLS)

Foarte util pentru a testa dacă o anumită adresă URL poate strânge de mână peste un anumit protocol SSL/TLS.

Pentru a vă conecta folosind SSL v3

curl --sslv3 https://yoururl.com

și pentru diferite versiuni TLS

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

Descărcați fișierul de pe serverul FTP

Puteți folosi curl și pentru a descărca fișierul, specificând numele de utilizator și parola.

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

Puteți utiliza oricând „-v” cu orice sintaxă pentru a imprima în modul verbose.

Antetul gazdei este util pentru a testa adresa URL țintă prin IP atunci când conținutul solicitat este disponibil numai când antetul gazdă se potrivește. Sau, dacă doriți să testați aplicația utilizând IP/URL de echilibrare a încărcării.

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

Ce zici de utilizarea cURL online?

Da, acest lucru este posibil cu următoarele instrumente. Puteți executa cURL de la distanță.

  Cum să vă planificați împrumuturile și economiile cu funcția NPER în Excel

Online CURL – un instrument ușor pentru a prelua adresa URL online și posibilitatea de a adăuga următoarele opțiuni.

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

generator de linie de comandă cURL – acesta este diferit. Vă ajută să construiți comanda curl în care puteți introduce informații într-o interfață de utilizare frumoasă, iar în partea de jos veți obține comanda cURL.

cURL este un utilitar util pentru a depana o problemă de conectivitate în timp real și sper că cele de mai sus vă vor ajuta. Dacă doriți să aflați mai multe, vă recomand Noțiuni de bază pentru linia de comandă Linux curs online.