Despre web - Cum functioneaza web-ul?
Va voi prezenta in acest articol, o versiune simplificată a ceea ce se întâmplă atunci când vizualizați o pagină web, într-un browser web, de pe computer sau telefon.
Această parte nu este esențială pentru scrierea codului web, dar va ajuta sa înțelegeti ce se întâmplă în fundal, care sunt mecanismele.
Clienți și servere
Calculatoarele conectate la web se numesc clienți și servere. O diagramă simplificată a modului în care interacționează ar putea arăta astfel:

- Clienții sunt dispozitivele tipice conectate la internet ale utilizatorului web (de exemplu, computerul conectat la Wi-Fi sau telefonul conectat la rețeaua mobilă) și software-ul de acces web disponibil pe acele dispozitive (de obicei, un browser web precum Firefox sau Chrome ).
- Serverele sunt computere care stochează pagini web, site-uri sau aplicații. Când un dispozitiv client dorește să acceseze o pagină web, o copie a paginii web este descărcată de pe server pe mașina client pentru a fi afișată în browserul utilizatorului.
Celelalte părți ale setului de instrumente
Clientul și serverul, descrise mai sus, nu spun întreaga poveste. Există multe alte elemente implicate și le vom descrie mai jos.
Să ne imaginăm că web-ul este un drum. La un capăt al drumului se află o casa - clientul, iar la celălalt capăt al drumului se află un magazin de la care doriți să cumpărați ceva - serverul.
Pe drumul dintre client si server se afla o serie intreaga de elemente:
- Conexiunea la internet - vă permite să trimiteți și să primiți date pe web. Practic este drumul dintre casa ta și magazin.
- TCP / IP - protocolul de control al transmisiei și protocolul Internet, sunt protocoale de comunicare, care definesc modul în care datele ar trebui să călătorească pe web. Acestea sunt niste mecanisme de transport, ca de exemplu, o bicicleta sau o masina cu care parcurgeti drumul de acasa pina la magazin.
- DNS(Domain Name Servers) - serverele cu nume de domeniu sunt ca o carte de adrese pentru site-uri web. Când introduceți o adresă web în browser, acesta se uită la DNS pentru a găsi adresa reală a site-ului web înainte de a putea prelua site-ul. Browserul trebuie să afle pe ce server se afla site-ul, astfel încât să poată trimite mesaje HTTP la locul potrivit. Este ca și cum ai căuta adresa exacta a magazinului.
- HTTP(Hypertext Transfer Protocol) - protocol de transfer de hipertext, este un protocol de aplicație, care definește o limbă de comunicare, inteleasa atit de client cit si de server.
- Fișiere componente - un site web este format din mai
multe tipuri de fișiere diferite. Aceste fișiere au două tipuri principale:
- Fișiere ce contin cod - site-urile web sunt construite în principal din HTML, CSS și JavaScript, dar veți întâlni si alte tehnologii puțin mai târziu.
- Active(Assets) - acesta este un nume colectiv, pentru toate celelalte elemente, care alcătuiesc un site web, cum ar fi imagini, muzică, video, documente PDF, etc..
Ce se intimpla exact?
Când introduceți o adresă web a unui site în browser, se intimpla urmatoarele:
- Browserul cauta serverul DNS și găsește adresa reală a serverului pe care site-ul web exista fizic.
- Browserul trimite un mesaj de solicitare HTTP către server, solicitându-i să trimită clientului o copie a site-ului web. Acest mesaj, precum și toate celelalte date trimise între client și server, sunt trimise prin conexiunea dvs. de internet folosind TCP / IP.
- Dacă serverul aprobă solicitarea clientului, serverul trimite clientului un mesaj „200 OK”, ceea ce înseamnă „Bineînțeles că poți să te uiți la acel site! Aici este”, apoi începe să trimită fișierele site-ului web către browser ca o serie de bucăți mici, numite pachete de date.
- Browserul asamblează micile bucăți într-un site web complet și le afișează.
DNS explicat
Adresele web reale nu sunt șiruri frumoase de text, usor de memorat, pe care le introduceți în bara de adrese pentru a găsi site-urile dvs. preferate. Sunt numere speciale care arată astfel: 63.245.215.20.
Aceastea se numesc adrese IP și reprezintă o locații unice pe web. Totuși, nu sunt foarte ușor de reținut, nu-i așa? De aceea s-au inventat servere cu nume de domeniu. Acestea sunt servere speciale, care potrivesc o adresă web pe care o introduceți în browserul dvs. (cum ar fi „google.com”) cu adresa reală (IP) a site-ului.
Site-urile pot fi accesate direct prin adresele lor IP. Puteți găsi adresa IP a unui site web tastând numele domeniului său într-un instrument precum IP Checker.
De exemplu, in terminal putem trimite un ping catre o adresa si vom primi adresa IP:
ping traffic-engine.com

Adresa IP incercuita cu albastru este in format IPv6.
Daca transformam adresa IPv6(2a00:ece1:0:14::1f2) in IPv4, obtinem adresa: 188.241.222.150.
Daca introducem aceasta adresa in browser vom ajunge pe site-ul: traffic-engine.com. Daca nu ajungem pe acest site, atunci este posibil ca adresa, sa fie o adresa de tip share, impartita intre mai multe site-uri.
Computerul de acasa, conectat la internet are si el o adresa IP generata de furnizorul de Internet. Puteti vedea care este adresa IP, cautind in google "what is my ip".
Odata ce suntem pe un site si navigam pe diverse pagini, practic facem diverse cereri catre server, prin intermediul potocolului HTTP sau HTTPS si primim acces la diverse pagini si resurse din site-ul respectiv.
Pachetele de date
Anterior am folosit termenul „pachete”, pentru a descrie formatul în care datele, sunt trimise de la server la client. La ce ne referim aici? Practic, datele sunt trimise pe web, ca mii de fragmente mici, astfel încât mulți utilizatori diferiți, pot descărca același site, în același timp. Dacă site-urile web ar fi trimise ca niște bucăți mari, doar un singur utilizator ar putea descărca site-ul, iar ceilalti ar trebui sa astepte sa le vina rindul, ceea ce, evident, ar face web-ul foarte ineficient și nu foarte usor de utilizat.
Cind vizitam un site, daca apasam F12 se deschide panoul DevTools, selectam "Network" si daca reimprospatam pagina, vom vedea ce resurse sunt descarcate odata cu pagina pe care am accesat-o. Ce vom vedea sunt cereri unice(unique requests), catre resurse pe care le primim odata cu pagina web solicitata.
Cum functioneaza Internetul?
Internetul este coloana vertebrală a web-ului, infrastructura tehnică care face posibil ca web-ul sa existe. La nivelul de bază, Internetul este o rețea mare de computere care comunică împreună.
Istoria internetului este oarecum obscură. A început în anii 1960 ca un proiect de cercetare finanțat de armata SUA, apoi a evoluat într-o infrastructură publică în anii 1980, cu sprijinul multor universități publice și companii private.
Diferitele tehnologii care susțin internetul, au evoluat de-a lungul timpului, dar modul în care funcționează nu s-a schimbat foarte mult.
O retea simpla
Când două computere trebuie să comunice, trebuie să le conectați fizic (de obicei cu un cablu Ethernet) sau fără fir (de exemplu, cu sisteme WiFi sau Bluetooth). Toate computerele moderne pot susține oricare dintre aceste conexiuni.

O astfel de rețea nu se limitează la două computere. Puteți conecta cât de multe computere doriți. Dar lucrurile se complică repede. Dacă încercați să conectați, de exemplu, zece calculatoare, aveți nevoie de 45 de cabluri, cu nouă mufe pe fiecare computer!

Pentru a rezolva această problemă, fiecare computer dintr-o rețea este conectat la un device mult mai mic, special numit router. Acest router are o singură treaba de facut - ca un semnalizator dintr-o gară, se asigură că un mesaj trimis de la un anumit computer, ajunge la computerul de destinație potrivit. Pentru a trimite un mesaj către computerul B, computerul A trebuie să trimită mesajul către router, care la rândul său transmite mesajul către computerul B și se asigură că mesajul nu este livrat computerului C.
Odată ce adăugăm un router la sistem, rețeaua noastră de 10 computere necesită doar 10 cabluri, un singur conector pentru fiecare computer și un router cu 10 mufe.

O rețea de rețele
Dar ce facem cind avem de conectat sute, mii, miliarde de calculatoare? Desigur, un singur router nu poate face fata, dar, dacă ați citit cu atenție, am spus că un router este un device ca oricare altul, deci, nimic nu ne împiedică să conectăm două routere împreună?

Conectând computerele la routere, apoi routerele intre ele, putem mari reteaua la infinit.

O astfel de rețea se apropie foarte mult de ceea ce numim Internet, dar lipsește ceva. Am construit aceasta rețea pentru propriile noastre scopuri, dar exista multe alte retele - prietenii, vecinii, oricine poate avea propria retea de calculatoare.
Insa, nu este posibil să configurați cabluri între casa dvs. și restul lumii, deci cum putem face asta?
Ei bine, există deja cabluri conectate la casa ta, de exemplu, cablul de energie electrică și telefon. Infrastructura telefonică conectează deja casa dvs. cu oricine din lume, astfel încât este firul perfect de care avem nevoie. Pentru a conecta rețeaua noastră la infrastructura telefonică, avem nevoie de un echipament special numit modem. Acest modem transformă informațiile din rețeaua noastră în informații gestionabile de infrastructura telefonică și invers.

Deci suntem conectați la infrastructura telefonică. Următorul pas este să trimitem mesajele din rețeaua noastră către rețeaua la care dorim să ajungem. Pentru aceasta, ne vom conecta rețeaua la un furnizor de servicii de internet (ISP). Un ISP este o companie care gestionează unele routere speciale, care sunt toate legate între ele și pot accesa, de asemenea, routerele altor ISP-uri. Deci mesajul din rețeaua noastră este transmis prin rețeaua de rețele ISP către rețeaua de destinație. Internetul este format din toată această infrastructură de rețele.

Găsirea calculatoarelor
Dacă doriți să trimiteți un mesaj către un computer, trebuie să specificați despre ce computer este vorba. Astfel, orice computer conectat la o rețea are o adresă unică de identificare, numită „adresă IP” (unde IP reprezintă protocolul Internet). Este o adresă formată dintr-o serie de patru numere separate prin puncte, de exemplu: 192.168.2.10.
Este foarte bine pentru computere, dar noi, oamenii, nu putem memora astfel de siruri de cifre, care corespund unor adrese ale unor site-uri.
Pentru a face lucrurile mai ușoare, putem asocia o adresă IP, cu un nume, care poate fi citit si memorat de utilizatori, numit, nume de domeniu. De exemplu, google.com este numele de domeniu utilizat, care corespunde adresei IP - 173.194.121.32. Așadar, folosirea numelui de domeniu este cea mai ușoară cale de a ajunge la un computer pe Internet.

Internet-ul si web-ul
După cum ați putut observa, atunci când navigăm pe web cu un browser web, folosim de obicei numele de domeniu pentru a ajunge la un site web. Asta înseamnă că Internetul și web-ul sunt același lucru? Nu este atât de simplu. După cum am văzut, Internetul este o infrastructură tehnică care permite conectarea a miliarde de calculatoare împreună. Printre aceste computere, unele computere (numite servere web) pot trimite mesaje inteligibile browserelor web. Internetul este o infrastructură, în timp ce web-ul este un serviciu construit deasupra infrastructurii. Merită menționat, că există alte câteva servicii, construite deasupra infrastructurii internetului, precum e-mail și IRC.
Cunoasterea termenilor uzuali
Ca în orice domeniu, web-ul are un jargon specific. Există câțiva termeni de bază pe care trebuie să-i înțelegeți de la început. Este ușor să confundați acești termeni uneori, deoarece se referă la funcționalități conexe, dar diferite. De fapt, uneori veți vedea acești termeni utilizati în mod eronat, lucru care va va bulversa.
- pagină web(web page) - un document care poate fi afișat într-un browser web cum
ar fi Firefox, Google, etc.. Acestea sunt adesea numite doar „pagini”. Pentru a accesa o pagină, trebuie doar
să introduceți adresa acesteia în bara de adrese a browserului:

- site web(website) - o colecție de pagini web, care sunt grupate și de obicei conectate împreună în diferite moduri. Adesea numit „site web” sau pur și simplu „site”. Pentru a accesa un site web, tastați numele său de domeniu în bara de adrese a browserului dvs., iar browserul va afișa pagina principală a site-ului, denumită uneori „acasă”;
- server web(web server) - un server web este un computer care găzduiește unul
sau mai multe site-uri web pe Internet, impreuna cu toate fisierele de care aceste site-uri au nevoie, pentru
a functiona corect. Serverul web, vă trimite orice pagină web care apartine unui site, pe care îl găzduiește,
către browserul oricărui utilizator, la cererea utilizatorului.
Nu confundați site-urile web și serverele web. De exemplu, dacă auziți pe cineva spunând: „Site-ul meu web nu răspunde”, înseamnă de fapt că serverul web nu răspunde și, prin urmare, site-ul web nu este disponibil si niciun alt site gazduit de acel server nu va raspunde - motor de căutare(search engine) - un serviciu web care vă ajută să găsiți alte pagini web, precum Google, Bing, Yahoo sau DuckDuckGo. Motoarele de căutare sunt accesate în mod normal printr-un browser web (de exemplu, puteți efectua căutări în motoarele de căutare direct în bara de adrese a Firefox, Chrome etc.) sau printr-o pagină web (de exemplu, bing.com sau duckduckgo.com). Mulți începători confundă motoarele de căutare și browserele. Ca sa fie foarte clar - un browser este o aplicație software care incarca și afișează pagini web, un motor de căutare este un site web care ajută oamenii să găsească pagini web de pe alte site-uri web.
