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.
Cuprins
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
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.
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ță.
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.