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ă
-osau-O: fără această opțiune,curlafișează tot fișierul (chiar și un binar sau arhivă) direct pe ecranul terminalului. - Omiterea opțiunii
-Lcâ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.