Articole
    Home » Cum să folosiți wget și curl pentru cereri web și descărcări de fișiere
Cum să folosiți wget și curl pentru cereri web și descărcări de fișiere

Cum să folosiți wget și curl pentru cereri web și descărcări de fișiere

Despre ce este acest articol? E simplu: vreau să-ți arăt cum poți folosi rapid și fără bătăi de cap două dintre cele mai tari unelte din arsenalul oricărui admin, devops sau coder cu chef de automatizări – wget și curl. Dacă ai avut vreodată nevoie să descarci rapid un fișier, să verifici un endpoint, să-ți scrii un script care să tragă date dintr-un API sau pur și simplu să faci debugging la o conexiune HTTP, sigur ai auzit de ele. Dar le folosești la capacitate maximă? Sau poate nu știi încă toate șmecheriile? Citește mai departe, ai șanse mari să descoperi ceva care-ți va salva timp și nervi.


Cuprins


De ce ai nevoie de wget și curl?

Fie că administrezi un VPS, un server dedicat sau rulezi containere în cloud, ai nevoie să poți interacționa cu web-ul direct din terminal. Poate vrei să descarci rapid un script, să verifici un API REST, să automatizezi backupuri sau să aduci update-uri. wget și curl sunt instrumentele de bază pentru orice astfel de task. Sunt rapide, mici, ușor de automatizat și, mai ales, universale – le găsești în aproape orice distribuție Linux, dar și pe Mac sau Windows.

Dramă realistă pe un server

Imaginează-ți: ești pe un server proaspăt configurat, la 3 dimineața, și trebuie să instalezi rapid un patch de securitate. Nu ai interfață grafică, doar SSH. Browser? Uită de el. Ai nevoie să descarci un fișier sau să verifici dacă site-ul clientului răspunde. Ce faci? Dacă nu știi de wget sau curl, ești ca un bucătar fără cuțit. Dar dacă știi, ești magicianul din spatele cortinei.

Cum funcționează pe scara mare?

Algoritmi, structură, diferențe

  • wget: Un utilitar axat pe download. Poate descărca fișiere prin HTTP, HTTPS, FTP, SFTP. Știe recursivitate (site-uri întregi), resume la download, proxy, autentificare.
  • curl: Maestro-ul cererilor web. Merge cu peste 20 de protocoale (inclusiv HTTP, HTTPS, FTP, SCP, SFTP, SMTP). Poate trimite și primi date, POST, PUT, HEAD, PATCH, DELETE, upload, download, headers custom, cookies, autentificare, SSL/TLS, debug la nivel de protocol.

Ambele folosesc algoritmi eficienți de transfer și bufferizare. wget e ca un robot care merge și aduce tot ce-i dai pe listă. curl e ca un agent secret – poate să trimită date, să primească, să negocieze, să mimeze un browser, să facă handshake-uri criptate.

Cum se instalează rapid?

  • Pe Ubuntu/Debian: sudo apt update && sudo apt install wget curl
  • Pe CentOS/RHEL/Fedora: sudo yum install wget curl sau sudo dnf install wget curl
  • Pe MacOS: brew install wget curl
  • Pe Windows: curl și wget

Use case-uri și beneficii

  • Descărcare rapidă de fișiere (ISO, scripturi, backup-uri, patch-uri)
  • Automatizare instalări (ex: bash <(curl -fsSL https://...))
  • Monitorizare uptime și răspuns API
  • Debugging și testare endpoint-uri HTTP/S (inclusiv HEAD, POST, PUT, DELETE)
  • Download site-uri întregi pentru backup sau analiză (wget recursiv)
  • Automatizare task-uri repetitive în scripturi bash (cron jobs)
  • Testare redirect-uri, autentificare, cookies, headers custom
  • Upload și download pe FTP/SFTP direct din shell
  • Preluare rapidă de date din API-uri REST pentru monitorizare sau alertare

Setup rapid: Ghid pas cu pas

1. Instalare rapidă

Rulează una din comenzile de mai sus și ești gata de acțiune. Sunt incluse în majoritatea distribuțiilor moderne.

2. Cum folosești wget?

  • Download simplu: wget https://site.com/fișier.zip
  • Resume la download: wget -c https://site.com/fișier.zip
  • Descărcare recursivă: wget -r -np -k https://site.com/path/
  • Proxy: wget -e use_proxy=yes -e http_proxy=proxy:port https://site.com
  • Autentificare: wget --user=user --password=parola https://site.com/private.zip

3. Cum folosești curl?

  • Verifică un site: curl -I https://site.com (doar headerele)
  • Download fișier: curl -O https://site.com/fișier.zip
  • POST request: curl -X POST -d "user=joe&pass=secret" https://site.com/login
  • Autentificare Basic: curl -u user:parola https://site.com/private
  • Headers custom: curl -H "Authorization: Bearer TOKEN" https://api.site.com/data
  • Debugging complet: curl -v https://site.com

4. Integrare în scripturi

#!/bin/bash
URL="https://api.site.com/status"
RESP=$(curl -s $URL)
if [[ $RESP == *"OK"* ]]; then
  echo "Totul e ok!"
else
  echo "ALERTĂ: API nu răspunde corect!"
fi

MiniDicționar pe înțelesul tuturor

  • GET: Cere și primește ceva. (Ex: “Dă-mi fișierul ăsta!”)
  • POST: Trimite ceva. (Ex: “Uite datele, procesează-le!”)
  • HEAD: Doar întreabă, fără să ia conținutul. (Ex: “Ce e acolo?”)
  • Header: Informații extra trimise la începutul cererii/răspunsului. (Ex: “Salut, sunt Chrome!”)
  • User-Agent: Cum se prezintă clientul. (Ex: “Eu sunt Firefox pe Linux”)
  • Proxy: Intermediar între tine și serverul țintă. (Ex: “Trimite-mi pachetul prin vecin”)
  • SSL/TLS: Criptare pentru conexiuni sigure. (Ex: lacătul din browser)

Exemple practice și comparații haioase

Comic Metaphor: wget vs curl

wget: 🚚 Camionul de marfă. Îi dai o adresă, aduce tot. Poate face curse (recursiv), nu vorbește mult.
curl: 🎩 Spionul sofisticat. Poate să trimită scrisori, să primească, să se dea drept altcineva, să spargă coduri, să mimeze orice browser.

Use Case: Vrei să descarci rapid un ISO mare pentru un server nou? wget e alegerea. Vrei să testezi un API, să trimiți date într-un JSON, să vezi ce răspunde serverul? curl e asul din mânecă.

Exemple negative (și cum le eviți):

  • Nu folosi wget pentru POST request-uri complexe – nu e făcut pentru asta, curl e mult mai flexibil.
  • Nu uita opțiunea -L la curl dacă vrei să urmărești redirect-uri: curl -L https://site.com
  • Nu pune parole în scripturi fără să le protejezi – folosește variabile de mediu sau fișiere temporare cu permisiuni stricte.
  • Nu folosi wget/curl pentru a descărca fișiere uriașe fără resume – folosește -c la wget sau -C - la curl.

Mituri, erori și alte unelte

  • Mit: “wget și curl fac același lucru.” Fals! Curl e mult mai versatil pe partea de API-uri și debugging, wget e campion la download recursiv și fișiere mari.
  • Greșeală comună: Folosești curl fără -L și nu primești ce vrei (redirect-urile nu sunt urmărite automat).
  • Alternativă: httpie – super friendly pentru testat API-uri.
  • Alternativă: aria2 – pentru descărcări masive, paralelizate.

“Use This If…” Decision Tree 🤔

Vrei să descarci rapid fișiere mari?  ----->  wget 🚚
    |
    V
Vrei să trimiți date sau să testezi API-uri? -----> curl 🎩
    |
    V
Vrei să descarci torrent/magnet/linkuri multiple? -----> aria2 🏎️
    |
    V
Vrei să vezi răspunsul frumos colorat, JSON pretty? -----> httpie 🌈

Statistici, fapte interesante și automatizare

  • Wget există din 1996 și curl din 1998 – deci au trecut testul timpului!
  • Curl are peste 200 de opțiuni de linie de comandă (da, două sute!).
  • Wget e folosit masiv pentru downloaduri automate la mirror-uri Linux și backupuri de site-uri.
  • Curl e folosit în peste 10 miliarde de device-uri (inclusiv smart TV, telefoane, routere, etc.).
  • Automatizarea cu wget și curl e “pâinea și cuțitul” pentru DevOps, administratori și developeri.

Script rapid de backup cu wget

#!/bin/bash
DATE=$(date +%F)
wget -r -np -nH --cut-dirs=2 -P /backup/$DATE https://site.com/backup/

Script rapid de healthcheck cu curl

#!/bin/bash
URL="https://api.site.com/health"
STATUS=$(curl -s -o /dev/null -w "%{http_code}" $URL)
if [ "$STATUS" -eq 200 ]; then
  echo "OK"
else
  echo "PROBLEMĂ: $STATUS"
fi

Povestea unui admin

Era odată un admin care trebuia să configureze 10 servere noi, fiecare cu scripturi, update-uri și configurări automate. În loc să piardă ore la fiecare server, a scris un mic script cu wget și curl care descărca tot ce avea nevoie, trimitea datele de monitorizare și făcea healthcheck la fiecare serviciu. Rezultat? A terminat în 30 de minute ce ar fi durat o zi întreagă. Bonus: când un server a picat, scriptul l-a alertat instant. “Magie neagră!”, au zis colegii. “Nu, doar wget și curl”, a răspuns el.

Concluzii, recomandări și resurse

  • wget – rapid, simplu, perfect pentru downloaduri masive, backupuri, mirror-uri. Îl iubești pentru stabilitatea lui.
  • curl – elvețianul din buzunar: testezi API-uri, trimiți date, faci debugging, automatizezi task-uri complexe.
  • Pentru servere rapide și sigure, alege un VPS sau un server dedicat – și pune wget și curl pe ele din prima zi!
  • Nu uita: documentația oficială e prietena ta! Citește mai mult aici:
  • Experimentează! Folosește wget și curl în scripturi, cron jobs, automatizări. Îți vor economisi timp, bani și nervi.

În concluzie: dacă vrei să fii rapid, eficient și să te simți ca un “ninja” în shell, stăpânește wget și curl. Nu există setup server sau task de automatizare care să nu fie mai ușor cu ele. Spor la download și la scriptat!

Leave a reply

Your email address will not be published. Required fields are marked