Cum funcționează internetul?

Subiect din roadmap-ul Backend Developer · parte din „Internet”

Internetul este infrastructura globală care permite comunicarea între dispozitivele conectate, transformând datele locale în informație accesibilă oriunde. Înțelegerea acestui mecanism este fundamentală pentru orice Backend Developer, deoarece serverele tale vor comunica constant cu clienți, baze de date și alte servicii prin acest mediu complex. Fără o bază solidă în modul în care circulă pachetele de date, debugging-ul și optimizarea performanței devin aproape imposibile.

Ce trebuie să știi

  • IP Address & DNS: Fiecare dispozitiv are o adresă IP unică, dar oamenii folosesc nume de domenii (ex: reprofil.ro). Sistemul DNS traduce aceste numi amintibile în adrese IP numerice pe care mașinile le înțeleg.
  • Protocoale de rețea: HTTP/HTTPS sunt standardul pentru web, dar ele rulează peste TCP/IP. Înțelege diferența dintre conexiunile fiabile (TCP) și cele rapide, dar fără garanții (UDP).
  • Modelul OSI/TCP-IP: Datele sunt împachetate în straturi. Cunoașterea rolului fiecărui strat te ajută să izolezi problemele (de exemplu, dacă e o eroare de nivel aplicație sau de transport).
  • Clienți și Servere: Modelul client-server descrie relația dintre cine cere resursa (browser/app) și cine o furnizează (backend-ul tău).
  • DNS Resolution: Procesul prin care browserul caută adresa IP a serverului înainte de a trimite prima cerere HTTP.

Exemplu concret: Cererea HTTP

Când tastezi https://api.reprofil.ro/users în browser, se întâmplă următoarele secvențial:

  1. Browserul verifică cache-ul local.
  2. Dacă nu găsește nimic, contactează serverul DNS pentru a rezolva api.reprofil.ro.
  3. Obține adresa IP (ex: 192.0.2.1) și deschide o conexiune TCP.
  4. Negociază handshake-ul TLS (pentru HTTPS).
  5. Trimite pachetul HTTP GET /users.
GET /users HTTP/1.1
Host: api.reprofil.ro
User-Agent: Mozilla/5.0
Accept: application/json

Serverul procesează cererea, interoghează baza de date și returnează un răspuns JSON, iar conexiunea se închide (sau rămâne deschisă pentru keep-alive).

Cum să înveți

  • Folosește curl și Postman: Execută comenzi simple în terminal pentru a vedea anteturile HTTP brute. Analizează răspunsurile serverelor publice pentru a observa codurile de stare (200, 404, 500).
  • Jucă-te cu Wireshark sau Chrome DevTools: Verifică tab-ul „Network” în browser pentru a vedea ordinea reală a cererilor. Pentru o perspectivă mai profundă, folosește Wireshark pentru a analiza pachetele la nivel de rețea.
  • Simulează un server simplu: Scrie un script minim în Node.js sau Python care ascultă pe un port local. Încearcă să accesezi acel port din alt calculator din aceeași rețea pentru a înțelege conceptul de host și port.

Resurse gratuite

Alte subiecte din „Internet”