curl în Linux / Bash

Transferă date către sau de la un server folosind protocoale web (HTTP, HTTPS, FTP, REST API).

Sintaxă comandă
curl [opțiuni] [URL...]

Ce face curl

Comanda curl (client URL) este instrumentul esențial din linia de comandă pentru interacțiunea cu servere web și API-uri. Poate trimite cereri GET, POST, PUT, DELETE, poate descărca fișiere, transmite antete personalizate și date JSON.

Este extrem de folosită în scripturi de automatizare, în testarea serviciilor web și în procesele de CI/CD.

Opțiuni și argumente

Opțiune / Parametru Descriere
-s, --silent Mod silențios: ascunde bara de progres și mesajele de stare.
-I, --head Trimite o cerere HEAD și afișează doar antetele HTTP de răspuns (fără corpul paginii).
-o CALE, --output Salvează conținutul descărcat într-un fișier local.
-O, --remote-name Salvează fișierul folosind același nume pe care îl are pe server.
-L, --location Urmărește automat redirecționările HTTP (coduri 301, 302).
-X METODĂ Specifică metoda HTTP (ex. -X POST sau -X DELETE).
-d DATE, --data Trimite date în corpul cererii (implicit activează metoda POST).
-H ANTET, --header Trimite un antet HTTP suplimentar (ex. -H "Content-Type: application/json").

Exemple

Exemplul 1: Inspectarea antetelor HTTP ale unui site

Opțiunea -I arată codul de stare HTTP și serverul web.

curl -I -s https://www.dexblog.ro | head -n 4

Ieșire în terminal

HTTP/2 200 
server: nginx
content-type: text/html; charset=UTF-8
date: Thu, 22 Oct 2026 10:45:00 GMT

Exemplul 2: Trimiterea unei cereri POST cu date JSON

Apelăm un endpoint de API trimițând un obiect JSON.

curl -s -X POST https://api.exemplu.ro/utilizatori                       -H "Content-Type: application/json"                       -d '{"nume": "Ana", "oras": "Iasi"}'

Ieșire în terminal

{"id": 105, "status": "creat"}

Greșeli frecvente

  • Descărcarea unui URL fără -o sau -O: fără această opțiune, curl afișează tot fișierul (chiar și un binar sau arhivă) direct pe ecranul terminalului.
  • Omiterea opțiunii -L când site-ul redirecționează de la HTTP la HTTPS (vei primi un răspuns gol sau o pagină scurtă de redirect în loc de conținutul dorit).

Comenzi înrudite

  • wget: Descarcă fișiere de pe internet prin protocoalele HTTP, HTTPS și FTP, cu suport pentru reluare și descărcare recursivă.
  • ssh: Conectează în siguranță un terminal criptat la distanță pe un alt server Linux.
  • netstat: Afișează conexiunile de rețea active, porturile deschise pentru ascultare și tabelele de rutare.