CUR

Învață Comenzi cURL: comenzi explicate cu exemple

50 de comenzi 6 categorii

cURL (Client URL Library) este cel mai răspândit și robust instrument în linia de comandă pentru transferul de date utilizând protocoale de rețea. Creat de Daniel Stenberg în 1997, cURL se găsește pe miliarde de dispozitive din lume, de la servere de producție, containere Docker și mașini de dezvoltare, până la televizoare și echipamente IoT.

În activitatea zilnică a unui dezvoltator software sau inginer DevOps, cURL este instrumentul de referință pentru interacțiunea cu API-uri REST și GraphQL, testarea securității SSL/TLS, diagnosticarea latenței de rețea și automatizarea proceselor de deployment.

Mai jos găsești cele 50 de comenzi și opțiuni esențiale cURL organizate pe categorii: cereri fundamentale și metode HTTP, trimitere de date și încărcare fișiere/JSON, gestiunea antetelor și a sesiunilor/cookie-urilor, securitate și certificate SSL, optimizare viteză și salvare fișiere, precum și diagnosticare avansată de rețea și proxy-uri.

Cereri HTTP fundamentale și Metode 9 comenzi

Trimitere date, formulare și JSON 8 comenzi

Redirecționări, SSL/TLS și Securitate 8 comenzi

Performanță, Descărcare și Salvare fișiere 9 comenzi

Diagnosticare, Proxy și Analiză Rețea 8 comenzi

Toate comenzile și opțiunile cURL

Lista completă a celor 50 de comenzi și opțiuni cURL explicate în această secțiune. Fiecare are propria pagină dedicată, cu explicații în limba română, sintaxă și exemple practice gata de utilizat.

Cereri HTTP fundamentale și Metode (9)

Funcție Ce face
curl <url> - Efectuarea unei cereri HTTP GET standard Descarcă și afișează conținutul resursei specificate direct în fluxul standard de ieșire (terminal).
curl [opțiuni] <url>
curl -i - Includerea antetelor HTTP în răspuns Afișează antetele HTTP de răspuns (status code, Content-Type, cookies, cache) înaintea corpului documentului.
curl -i <url>
curl -I - Cerere exclusivă HTTP HEAD Obține doar metadatele și antetele HTTP ale resursei fără a descărca corpul paginii sau al fișierului.
curl -I <url>
curl -X POST - Specificarea explicită a metodei HTTP POST Trimite o cerere utilizând metoda HTTP POST pentru crearea de resurse noi pe server.
curl -X POST <url>
curl -X PUT - Actualizarea completă a unei resurse prin HTTP PUT Trimite o cerere HTTP PUT pentru înlocuirea sau crearea idempotentă a unei resurse pe server.
curl -X PUT -H "Content-Type: application/json" -d '{"camp": "valoare"}' <url>
curl -X DELETE - Ștergerea unei resurse prin HTTP DELETE Transmite o cerere HTTP DELETE către server pentru a elimina resursa identificată de URL.
curl -X DELETE <url>
curl -X PATCH - Modificarea parțială a unei resurse Aplică modificări parțiale asupra unei resurse fără a trimite întregul obiect de date.
curl -X PATCH -H "Content-Type: application/json" -d '{"status": "arhivat"}' <url>
curl -X OPTIONS - Interogarea metodelor permise și a politicilor CORS Trimite o cerere HTTP OPTIONS pentru a afla ce metode sunt suportate și cum sunt configurate antetele CORS.
curl -i -X OPTIONS <url>
curl --http1.1 / --http2 / --http3 - Selectarea versiunii protocolului HTTP Forțează utilizarea unei versiuni specifice a protocolului HTTP (HTTP/1.1, HTTP/2 pe TCP sau HTTP/3 QUIC pe UDP).
curl --http1.1 <url>

Trimitere date, formulare și JSON (8)

Funcție Ce face
curl -d - Trimitere date POST (application/x-www-form-urlencoded) Trimite date în corpul unei cereri POST folosind codarea standard de formulare web.
curl -d "cheie=valoare&camp=test" <url>
curl --data-raw - Trimitere date brute fără interpretarea caracterului @ Trimite textul specificat exact așa cum este, fără a interpreta caracterul @ ca fiind o cale de fișier.
curl --data-raw "@mentiune_sau_email" <url>
curl --data-urlencode - Codarea automată a caracterelor speciale în URL Codează automat caracterele speciale conform standardului procentual URL (%20, %26 etc.).
curl --data-urlencode "cautare=termen & test" <url>
curl --data-binary - Trimitere date binare neschimbate Transmite conținutul exact al unui fișier sau buffer binar fără a elimina caracterele newline sau carriage return.
curl --data-binary @imagine.png -H "Content-Type: image/png" <url>
curl --json - Trimitere simplificată de date JSON Trimite un payload JSON adăugând automat antetele Content-Type și Accept: application/json.
curl --json '{"titlu": "Articol", "activ": True}' <url>
curl -F - Trimitere formular multipart/form-data și upload fișiere Trimite date conform standardului multipart/form-data (RFC 2388), utilizat pentru formulare HTML cu upload de fișiere.
curl -F "fisier=@foto.jpg" -F "descriere=Poza mea" <url>
curl -T - Încărcare fișiere prin HTTP PUT sau FTP Încarcă un fișier local direct pe server utilizând metoda HTTP PUT sau protocolul FTP/SFTP.
curl -T fisier.tar.gz https://storage.dexblog.ro/backup/
curl -g - Dezactivarea interpretării URL Globbing Dezactivează analiza caracterelor [] și {} în URL-uri, permițând transmiterea lor ca parametri literali.
curl -g "https://api.dexblog.ro/cauta?query=[tag:php]"

Antete HTTP, Cookie-uri și Autentificare (8)

Funcție Ce face
curl -H - Adăugarea de antete HTTP personalizate Adaugă sau suprascrie antetele HTTP trimise de client către server în cadrul cererii.
curl -H "Antet: Valoare" <url>
curl -A - Personalizarea șirului User-Agent Modifică antetul User-Agent pentru a identifica aplicația client sau a emula un browser web.
curl -A "NumeAplicatie/1.0" <url>
curl -e - Specificarea antetului Referer Trimite adresa URL a paginii de proveniență (Referer) pentru a simula navigarea de la un site sursă.
curl -e "https://www.google.com/" <url>
curl -b - Trimitere cookie-uri de sesiune Transmite cookie-uri către server dintr-un șir inline sau citite dintr-un fișier local.
curl -b "sesiune=abc123xyz; dark_mode=1" <url>
curl -c - Salvarea cookie-urilor într-un fișier (Cookie Jar) Scrie toate cookie-urile primite în răspuns (antetele Set-Cookie) într-un fișier local la finalizarea cererii.
curl -c cookies.txt -d "user=admin&pass=123" https://site.ro/login
curl -u - Autentificare HTTP Basic / Digest Trimite credențiale de autentificare HTTP Basic codate Base64 în antetul Authorization.
curl -u "utilizator:parolă" <url>
curl --oauth2-bearer - Autentificare cu Token OAuth 2.0 / Bearer Furnizează token-ul Bearer OAuth 2.0 pentru autorizarea cererilor către API-uri moderne.
curl --oauth2-bearer "eyJhbGciOi..." <url>
curl --netrc - Preluarea credențialelor din fișierul ~/.netrc Citește automat numele de utilizator și parola din fișierul de configurare securizat ~/.netrc.
curl --netrc <url>

Redirecționări, SSL/TLS și Securitate (8)

Funcție Ce face
curl -L - Urmărirea automată a redirecționărilor (301, 302, 307) Instruiește curl să urmeze automat antetul ‘Location’ trimis de server la coduri de redirecționare 3xx.
curl -L <url>
curl --max-redirs - Limitarea numărului de redirecționări permise Stabilește numărul maxim de redirecționări pe care curl are voie să le parcurgă consecutiv.
curl -L --max-redirs 5 <url>
curl -k - Ignorarea verificării certificatului SSL/TLS Permite conexiuni HTTPS nesigure fără a valida validitatea certificatului SSL/TLS al serverului.
curl -k <url>
curl --cacert - Specificarea unui pachet CA personalizat Folosește un fișier personalizat de certificate CA pentru a verifica identitatea serverului.
curl --cacert /cale/catre/ca-bundle.crt <url>
curl --cert / --key - Autentificare reciprocă mTLS cu certificat client Trimite certificatul de securitate al clientului și cheia privată pentru autentificare mutuală mTLS.
curl --cert client.crt --key client.key <url>
curl --tlsv1.3 - Forțarea versiunii minime TLS 1.3 Impune utilizarea versiunii moderne și securizate a protocolului TLS 1.3.
curl --tlsv1.3 <url>
curl --pinnedpubkey - Fixarea cheii publice SSL (Public Key Pinning) Verifică dacă cheia publică a certificatului serverului corespunde exact cu hash-ul SHA-256 specificat.
curl --pinnedpubkey "sha256//hash..." <url>
curl --ciphers - Selectarea algoritmilor de criptare SSL/TLS Specifică lista algoritmilor de cifrare (cipher suites) acceptați pentru negocierea sesiunii TLS.
curl --ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384" <url>

Performanță, Descărcare și Salvare fișiere (9)

Funcție Ce face
curl -o - Salvarea răspunsului într-un fișier local specificat Scrie corpul răspunsului primit de la server într-un fișier local cu numele ales.
curl -o /cale/fisier_salvat.ext <url>
curl -O - Salvarea automată cu numele original al fișierului Salvează fișierul local folosind exact numele componentei finale extrase din calea URL-ului.
curl -O <url>
curl -C - Reluarea descărcării întrerupte (Resume Download) Reia descărcarea unui fișier mare de la poziția unde a fost întreruptă conexiunea.
curl -C - -O <url>
curl --limit-rate - Limitarea vitezei de transfer a datelor Restricționează lățimea de bandă utilizată la descărcare sau încărcare pentru a nu satura rețeaua.
curl --limit-rate 500k -O <url>
curl -s - Activarea modului silențios Ascunde bara de progres și mesajele de stare ale procesului de descărcare.
curl -s <url>
curl -S - Afișarea erorilor în mod silențios (-sS) Combinat cu -s, ascunde bara de progres dar păstrează afișarea mesajelor critice de eroare pe stderr.
curl -sS <url>
curl -v - Activarea modului detaliat de depanare (Verbose) Afișează pas cu pas rezoluția DNS, stabilirea conexiunii TCP, handshake-ul TLS și toate antetele trimise și primite.
curl -v <url>
curl --compressed - Solicitarea și decompresia automată a răspunsului Trimite antetul Accept-Encoding și decomprimă automat răspunsurile comprimate cu gzip, deflate sau brotli.
curl --compressed <url>
curl -f - Oprire cu cod de ieșire non-zero la erori HTTP (4xx / 5xx) Eșuează silențios și returnează un cod de ieșire de eroare (22) dacă serverul răspunde cu coduri 400+, fără a afișa corpul paginii de eroare.
curl -f <url>

Diagnosticare, Proxy și Analiză Rețea (8)

Funcție Ce face
curl -w - Extragerea metricilor de performanță și a variabilelor (Write-out) Afișează informații structurate și metrici precise de sincronizare și rețea la finalizarea transferului.
curl -s -o /dev/null -w "%{http_code}\n" <url>
curl --connect-timeout - Setarea limitei de timp pentru conectare Stabilește numărul maxim de secunde permise exclusiv pentru stabilirea conexiunii TCP către server.
curl --connect-timeout 5 <url>
curl -m - Setarea timpului maxim pentru întreaga operațiune Limitează durata totală a comenzii cURL, anulând operațiunea dacă depășește numărul de secunde indicat.
curl -m 10 <url>
curl -x - Rutarea cererilor printr-un server Proxy Redirecționează întregul trafic prin intermediul unui server proxy HTTP, HTTPS sau SOCKS.
curl -x http://proxy.corp.ro:8080 <url>
curl --socks5-hostname - Rutarea traficului prin Proxy SOCKS5 cu DNS la distanță Stabilește conexiunea printr-un proxy SOCKS5 delegând și rezolvarea DNS către acesta.
curl --socks5-hostname 127.0.0.1:9050 <url>
curl --resolve - Forțarea mapării DNS către un IP specific Forțează curl să trimită cererea către un IP specific pentru un domeniu, fără a modifica fișierul /etc/hosts.
curl --resolve gazda:port:adresa_ip <url>
curl -4 / -6 - Forțarea rezolvării IPv4 sau IPv6 Forțează rezolvarea numelui de domeniu și conexiunea exclusiv pe protocolul IPv4 sau IPv6.
curl -4 <url>
curl --trace-ascii - Jurnalizarea completă a traficului de rețea Scrie un jurnal detaliat la nivel de octeți cu toate datele trimise și primite într-un fișier local.
curl --trace-ascii dump.txt <url>