Quantcast
Channel: IT4Fans - te ajută să te miști în IT! » Favorite
Viewing all articles
Browse latest Browse all 9

Ce se întâmplă când accesezi o pagină web?

$
0
0


Introducere

În primul rând se impune o precizare din capul locului: articolul care urmează este pentru începătorii într-ale Internetului. Dacă te consideri avansat, îți pierzi timpul. Articolul nu e pentru tine.

Dacă încă citești, să-i dăm drumul!

Îți pornești, deci, programul favorit de navigare pe internet, browserul.
Dacă ești începător sunt șanse foarte mari să folosești Internet Explorer.
Iar dacă ai ceva vechime, probabil ai migrat la un moment dat spre un browser mai răsărit.
Cum ar fi, de exemplu, Mozilla Firefox sau mai tânărul dar vajnicul Google Chrome.
Oricare ți-ar fi browserul, scrii în bara lui de navigare ceva care de obicei începe cu www.
Dai Enter.
Ce se întâmplă când faci asta?
Calculatorul tău și Măria Sa, Internetul, își dau mâna ca să-ți ducă ordinul la îndeplinire.
Și pac, se încarcă pagina dorită.
Simplu și elegant, nu?

Server web

Poate te-ai întrebat ce se ascunde în spatele unui scenariu atât de simplu. A venit momentul să ștergem de praf lupa și să ne uităm mai îndeaproape la secvența de operații care se desfășoară în secret, pe nesimțite, din momentul când dai Enter și până când îți vezi în browser pagina cerută. Pagină care vine de unde? De undeva din marele Internet, nu? Corect, dar prea vag. Pagina ta vine de pe unul din milioanele de servere web din lumea largă.

Ce este un server web? Este un calculator care de obicei stă undeva într-un data center» . Pe calculatorul ăsta se află, printre multe alte pagini web, și pagina pe care vrei tu să o accesezi. Dar de fapt serverul web nu este calculatorul în sine, ci mai exact un program specializat care rulează pe acel calculator. Programul respectiv are rolul de a procesa solicitarea venită prin rețea de la browserul de pe calculatorul tău și de a răspunde furnizând conținutul paginii solicitate. Asta e de fapt un server web: un program care primește prin rețea din partea browserelor utilizatorilor cereri de acces la paginile web din “dotare” și răspunde furnizând conținutul acestor pagini (sau diverse mesaje de eroare în situația în care, din varii motive, nu poate furniza informația solicitată).

Nu e greu de intuit că, atunci când ceri browserului să-ți încarce pagina dorită, el trebuie să identifice mai întâi serverul web pe care se află acea pagină (server care rulează pe un sistem de calcul ce poate fi oriunde în lumea asta mare) și să ia legătura cu respectivul server pentru a-i solicita conținutul paginii.

URL

Dar înainte de a aprinde lanterna, să lămurim ce reprezintă ceea ce scrii tu în bara de navigare când vrei să accesezi o pagină web. Ce scrii tu acolo se numește URL (Uniform Resource Locator) și reprezintă un șir de caractere care identifică pagina dorită. URL-urile au o structură bine definită și, ca să înțelegem mai bine despre ce-i vorba, hai să luăm ca exemplu chiar URL-ul paginii la care te uiți acum (pentru ușurința identificării părților componente le-am scris cu culori diferite):

http://www.it4fans.ro/3767/ce-se-intampla-cand-accesezi-o-pagina-web.html

Identificăm trei părți principale.

Partea întâi, scrisă cu roșu, este metoda prin care se accesează pagina dorită, în cazul nostru http, ceea ce înseamnă că pentru accesarea paginii se va folosi protocolul HTTP» . Partea întâi, metoda de acces, se separă întotdeauna de partea următoare din URL folosind secvența :// (două puncte urmate de două caractere slash).

Partea a doua, scrisă cu verde (www.it4fans.ro), este un nume ce se referă la calculatorul pe care rulează serverul web în “ograda” căruia se află pagina pe care o cauți. El este partenerul de discuție al browserului tău. Este sarcina browserului ca, plecând de la acest nume:

  1. să caute mai întâi calculatorul pe care rulează serverul web (operație care se numește rezolvarea numelui DNS);
  2. și apoi să contacteze acel server web folosind metoda specificată (în cazul nostru http) pentru a-i cere conținutul paginii (care este identificată folosind partea a treia din URL).

Partea a treia, scrisă cu albastru (/3767/ce-se-intampla-cand-accesezi-o-pagina-web.html) reprezintă calea de acces  spre pagina căutată (în cadrul serverului web). Ea poate sau nu să coincidă cu ultima parte din calea fizică a fișierului de pe discul calculatorului-server ce conține pagina cerută.

Într-un URL, după partea a treia mai pot urma și alte părți prin care pot fi comunicate serverului web informații legate de poziția (din cadrul paginii) unde se află informația ce trebuie accesată (opțiune utilă în cazul paginilor de dimensiuni mari) sau valorile diverșilor parametri pe care serverul trebuie să le cunoască pentru a putea genera pagina de răspuns, dar n-aș vrea să intru în detalii acum pentru că am vrut doar să schițez principalele componente ale unui URL, nu mi-am propus să tratez exhaustiv problematica URL-urilor.

Rezolvarea numelui DNS

Ziceam că browserul, înainte de a putea contacta serverul web pe care se află pagina solicitată, trebuie ca, pornind de la numele DNS din URL (în cazul nostru www.it4fans.ro), să identifice calculatorul pe care rulează acel server web. Și cum se identifică un calculator în tot internetul ăsta mare și lat? Simplu: precizând adresa acelui calculator, numită adresă IP, care este de fapt o secvență de patru numere separate prin punct (.), de exemplu 85.214.23.115. Orice calculator care trebuie să poată fi accesat în internet trebuie să aibă configurată o astfel de adresă IP.

Deci o primă sarcină a browserului ar fi ca, plecând de la numele DNS www.it4fans.ro, să afle adresa IP a calculatorului pe care rulează serverul web, server care nu va putea fi contactat decât dacă se cunoaște această adresă IP. Sarcina asta este pentru browser mai simplă decât pare, pentru că nu el trebuie să-și bată capul să o rezolve. El doar o paseazăsistemului DNS» .

Te-ai putea întreba acum: bine, dar ce rost are toată complicația asta cu numele DNS care pe urmă trebuie convertit în adresă IP folosind complicatul sistem DNS? Nu era mai simplu ca în URL să se specifice direct adresa IP în locul acelui nume DNS? Intr-un fel da, ar fi fost mai simplu așa. Dar adresa IP este o valoare mult prea “tehnică”. În primul rând, spre deosebire de un nume sugestiv, adresa IP nu spune nimic interesant utilizatorului și este greu de ținut minte iar apoi să nu uităm că adresa IP a serverului web se mai poate schimba în decursul timpului (de exemplu dacă administratorul site-ului decide să îl mute la un alt furnizor de găzduire web, caz în care va fi folosită o adresă IP din spațiul de adrese IP al noului furnizor). Dacă adresa IP a serverului ar apărea direct în URL în locul numelui, atunci URL-urile vechi nu ar mai fi valabile după mutarea site-ului la alt furnizor de hosting, situație absolut inacceptabilă. În timp ce, prin folosirea în URL a unui nume DNS, numele rămâne valabil tot timpul și o eventuală schimbare a adresei IP se operează în sistemul DNS și nu în URL-urile paginilor. În acest mod utilizatorii nici nu observă faptul că adresa IP a site-ului s-a schimbat. URL-ul lor îi conduce în continuare la pagina dorită la fel ca înainte.

Contactarea serverului web pentru a-i cere pagina dorită

Odată obținută de la serverul DNS local adresa IP (ex. 85.214.23.115) a serverului web care deține pagina căutată, browserul tău contactează serverul web identificat de respectiva adresă IP. Serverul fiind situat peste mări și țări, sarcina de a-l contacta pare complicată. La fel ca și în cazul interogării DNS, contactarea serverului web este mai simplă decât pare, pentru că sarcina este și de data asta pasată altcuiva: de data asta unui cărăuș de meserie, protocolul TCP/IP» .

Ca să fac o paranteză, același TCP/IP este cel prin intermediul căruia are loc și comunicația browserului cu serverul DNS local despre care vorbeam în secțiunea precedentă, iar serverul DNS local comunică la rândul lui cu alte servere DNS din internet folosind tot TCP/IP. Deci nu exagerez când afirm că TCP/IP este calul de povară al internetului. O să detaliez funcționarea protocolului TCP/IP și a sistemului DNS într-o serie de articole viitoare pentru că înțelegerea lor este esențială ca să poți spune că ai idee despre cum funcționează internetul. Sigur că ambele sunt vechi de peste două decenii însă cu toate astea nu multă lume știe cum funcționează, deci consider subiectul ca fiind unul de actualitate.

Revenind, browserul trimite serverului web solicitarea privind pagina web dorită. Solicitarea identifică pagina specificând  porțiunea din URL de după numele DNS (în cazul nostru /3767/ce-se-intampla-cand-accesezi-o-pagina-web.html), este formulată conform regulilor protocolului HTTP și este transmisă serverului web folosind protocolul TCP/IP. Serverul analizează cererea, formulează un răspuns conform regulilor aceluiași protocol HTTP, răspuns pe care îl transmite browserului folosind același protocol TCP/IP. În cazul în care solicitarea este procesată cu succes, serverul comunică browserului succesul operației folosind o notație specială HTTP după care furnizează conținutul paginii solicitate, conținut  exprimat în limbajul HTML. Dacă din diverse motive serverul nu poate da curs solicitării HTTP venite de la browser, va adresa browserului tot în termeni HTTP un mesaj de eroare (cum ar fi celebrul 404 Not Found).

Analizând conținutul paginii primit de la serverul web, browserul va identifica imaginile și alte elemente care trebuie afișate în pagină dar al căror conținut nu este inclus în pagina deja primită. Conținutul imaginilor și al eventualelor alte elemente este cerut serverului web printr-o secvență de solicitări HTTP ulterioare. Așa se explică faptul că, dacă dispunem de o conexiune internet mai lentă, observăm cum se încarcă mai întâi pagina cu textul iar imaginile se încarcă abia în secundele următoare.

Una dintre cele mai dificile sarcini care îi revine browserului este cea de a interpreta codul HTML și CSS» și de a-l reprezenta grafic exact în forma dorită de realizatorul respectivei pagini web. Este un subiect sensibil care a cauzat multe frustrări atât în rândul web designerilor cât și în rândul utilizatorilor din cauza faptului că modelele de browsere aflate în largă circulație nu au abordat în mod unitar și coerent aspectele generării paginilor web, ba chiar unele și-au permis să ignore cu tupeu maxim standardele în vigoare. Când vine vorba despre ignorarea standardelor, suspect de mulți web designeri arată cu degetul spre Internet Explorer și știu ei de ce. Același gen de probleme este valabil și cu engine-ul Javascript din browserele de largă circulație. Cum zice românul: câte bordeie, atâtea obiceie. În condițiile astea nu mai miră pe nimeni că băieții de la Google, dacă tot erau hotărâți să marșeze puternic pe Cloud Computing, s-au decis să-și creeze propriul browser, ca să știe o treabă.

Web-ul între trecut și viitor

Modelul cerere-răspuns implementat de protocolul HTTP este și el foarte vechi, la fel ca și protocolul, și nu prea se mai pliază satisfăcător pe cerințele web-ului modern din cauză că este inerent static. Eu îți cer o informație și tu mi-o dai. Asta suna bine la începuturile internetului dar în zilele noastre conceptul e depășit. Un concept adaptat la vremurile noastre dinamice ar fi următorul: eu îți cer o experiență și tu mi-o dai. Ce diferență este între informație și experiență? Aceeași ca și între static și dinamic.

Ceea ce îți dorești în ziua de azi de la un server web nu este o pagină moartă cu un text, câteva poze și eventual vreun filmuleț. Bine, ceea ce aștepți acum este tot o pagină cu text, culoare, sunet, dar o pagină vie, animată, cu care să poți interacționa și care să arate și să se comporte altfel în funcție de acțiunile tale. Este ca o aplicație desktop accesibilă prin intermediul browserului.

Așa s-a ajuns să se vorbească atât de mult despre Web 2.0, care este un web viu, în care utilizatorii care navighează accesează de fapt niște aplicații web care le oferă aceeași senzație de dinamism ca și aplicațiile locale, desktop, și în plus valorifică în același timp potențialul imens al rețelelor:

  • posibilitatea de accesare instantanee a unei aplicații fără să fie nevoie ca ea să mai fie instalată pe calculatorul local;
  • posibilitatea ca aplicația ce rulează pe server să facă uz de resurse computaționale sau de stocare mult mai mari  decât cele disponibile în mod tipic pe calculatorul utilizatorului obișnuit;
  • posibilitatea desfășurării unor activități colaborative între mai mulți utilizatori ai aplicației web;
  • posibilitatea administratorului serverului de a taxa utilizatorul în funcție de cât de mult utilizează aplicația sau de a injecta publicitate inteligentă, contextuală, în câmpul vizual al utilizatorului, în funcție, de exemplu, de experiența web anterioară a acestuia;

După cum se vede, în Web 2.0 nu mai vorbim despre pagină web ci despre aplicație web. Protocolul HTTP este folosit în continuare pentru comunicarea cu serverul și limbajul HTML este în continuare utilizat pentru descrierea paginilor (cel puțin parțial) însă în Web 2.0 pe partea de server se utilizează adesea servere de aplicații iar pe partea de client se face uz intens de tehnologii care rulează în browser cum ar fi Javascript, Flash, Silverlight, Java. Tot mai mult se aude și de HTML5 care încă nu a ajuns la potențialul maxim, nefiind încă un standard recomandat de World Wide Web Consortium (W3C), fază la care se va ajunge, probabil, abia în toamna anului curent (2010).

Nu mai este demult un secret faptul că tendința contemporană este ca aplicațiile desktop să fie înlocuite de aplicații web care să ruleze pe servere aflate “undeva acolo afară”, adică într-un nor mistic, arhitectură care poartă numele de Cloud Computing și pe marginea căreia au curs râuri de cerneală în presă. Aliniindu-se acestei tendințe, se știe că gigantul Google lansează anul ăsta sistemul de operare Chrome OS, bazat pe GooBuntu (o versiune de Linux adaptată de Google) și care va gravita în jurul browserului vedetă din Mountain View: celebrul de acum Chrome. Chrome OS va fi un sistem de operare pentru care Cloud Computing este un principiu la fel de fundamental cum este legea lui Arhimede pentru vapoare.

o cameră climatizată plină cu dulapuri speciale frumos aliniate numite rack-uri, în care sunt montate servere și alte echipamente de rețea. Când intri prima oară într-un data center te frapează aspectul industrial, răceala cauzată de absența oamenilor și zumzăitul monoton produs de numeroasele ventilatoare care suflă afară aerul fierbinte degajat de echipamentePowered by Hackadelic Sliding Notes 1.6.5
Hyper-Text Transfer Protocol: protocol creat special pentru accesarea paginilor web, prin care de obicei se trimit serverului web comenzi de forma dă-mi pagina cutare și se primesc răspunsuri de forma pagina cerută este <și urmează conținutul paginii>Powered by Hackadelic Sliding Notes 1.6.5
DNS (Domain Name System) este o bază de date globală, distribuită în toată lumea, ce conține asocieri între numele de domeniu de forma www.it4fans.ro și adresa IP corespunzătoare, de exemplu 85.214.23.115. Sistemul poate fi interogat adresând “întrebarea” serverului DNS local, adică serverul DNS situat de obicei în rețeaua furnizorului tău de internet și a cărui adresă IP este cunoscută de calculatorul tău. Serverul DNS local își asumă răspunderea de a căuta și contacta  alte servere DNS până îl găsește pe cel care deține asocierea între numele DNS pe care îl cauți și adresa IP corespunzătoarePowered by Hackadelic Sliding Notes 1.6.5
Transmission Control Protocol / Internet Protocol este o metodă care asigură transportul de date între oricare două calculatoare din internet, fiecare din ele identificate printr-o adresă IP. TCP/IP este implementat pe toate calculatoarele conectate la Internet sub forma unei porțiuni de software care există în cadrul sistemului de operare.Powered by Hackadelic Sliding Notes 1.6.5
Cascading Style Sheets = o notație prin care se specifică detaliile privitoare la modul cum trebuie să arate elementele din cadrul unei pagini HTML, de exemplu aliniamentul, culorile, fonturile etc.Powered by Hackadelic Sliding Notes 1.6.5

Viewing all articles
Browse latest Browse all 9

Trending Articles


Garda Felina Sezonul 1 Episodul 6


Doamnă


BMW E90 invarte, dar nu porneste


Curajosul prinț Ivandoe Sezonul 1 Episodul 01 dublat in romana


MApN intentioneaza, prin proiectul sustinut si de PSD, sa elimine...


Zbaterea unei vene sub ochii


Film – Un sef pe cinste (1964) – Une souris chez les hommes – vedeti aici filmul


pechinez


Hyalobarrier gel endo, 10 ml, Anika Therapeutics


Garaj tabla Pasteur 48