Čítate tento článok, čo znamená, že ste klikli na odkaz, reťazec znakov, ktorý jedinečne identifikuje tento dokument, jeden z miliárd na webe. Možno ste klikli na odkaz na indexovej stránke blogu Hostinger, na stránke s výsledkami vyhľadávania Google alebo na stránke Facebooku. Ale odkiaľkoľvek ste prišli, dostali ste sa sem rovnakým spôsobom a o tomto procese sa budeme baviť.
Systém doménových mien
Keď kliknete na odkaz v hypertextovom dokumente, požiadate prehliadač o stiahnutie a zobrazenie súvisiaceho obsahu. Predtým, ako prehliadač môže čokoľvek stiahnuť, musí vedieť, ktorý z miliónov serverov na webe má danú stránku. Ľudsky čitateľná webová adresa (URL) nezakóduje tieto informácie spôsobom, ktorý je užitočný pre stroje. Webová adresa musí byť preložená do IP adresy, ktorú možno použiť na smerovanie informácií po webe. To je úlohou systému doménových mien (DNS).
Existujú dva typy serverov DNS: rekurzívny a autoritatívny. Rekurzívne servery DNS sú zodpovední za zistenie IP adresy spojenej s URL. Zvyčajne ich spravuje poskytovateľ internetových služieb, ktorý poskytuje internetové pripojenie, ktoré prehliadač používa, aj keď nie vždy. An autoritatívny server DNS pozná IP adresy časti webu. Rekurzívne servery žiadajú autoritatívne servery o príslušnú IP adresu.
Rekurzívne servery DNS sú ako knihovníci: vedia veľa, ale nie všetko. Často potrebujú konzultovať autoritatívne externé zdroje, aby odpovedali na otázku, a v systéme DNS je to autoritatívny server DNS.
Prehliadač odošle požiadavku na rekurzívny server DNS. Ak pozná IP adresu stránky, okamžite ju odošle do prehliadača. Ak nie, musí požiadať autoritatívne servery DNS. Autoritatívne servery DNS sú usporiadané v hierarchii, strome hore nohami. V hornej časti sú koreňové servery, ktoré vedia, za ktoré autoritatívne servery DNS sú zodpovedné .com, .neta tak ďalej.
Ak je webová adresa hostiteľa nexcess.net/blog, autoritatívny server DNS ktorý vie o .net adresy, o ktorom server vie nexcess.net adresy. Potom server DNS, ktorý vie o nexcess.net sa pýta nexcess.net/blog.
Naše autoritatívne servery DNS vedia, s ktorou IP je spojená nexcess.net/blog, takže rekurzívnemu serveru DNS oznámi, že prehliadač požiadal, a ten to potom oznámi prehliadaču. V tomto bode má prehliadač informácie, ktoré potrebuje na odoslanie požiadavky na server, ktorý je hostiteľom nášho blogu.
Poznámka k zjednodušeniu
V tomto článku sa zameriavame na DNS, HTTP a TCP. Tieto protokoly a systémy sú vrcholom veľkého množstva technológií, takže náš popis je čiastočný – veľa nám chýba, pretože to nie je relevantné pre väčšinu klientov WordPress.
Požiadavka HTTP
Prehliadač pozná IP adresu servera, na ktorom sa nachádza náš blog, a tak pošle serveru správu s oznámením, že chce nadviazať spojenie. Medzi prehliadačom a serverom dochádza k miernemu kláboseniu tam a späť, po ktorom sa medzi nimi vytvorí spojenie TCP. TCP/IP je sieťový protokol o jednu vrstvu nižšie ako HTTP, protokol webu.
Server a prehliadač spolu hovoria, takže je čas, aby sa prehliadač dostal k veci. Serveru odošle správu, ktorá vyzerá asi takto:
GET /a-blog-article HTTP/1.1
Hostiteľ: nexcess.net/blog
Toto požiada server o získanie prostriedku /článok-blogu na serveri na adrese nexcess.net/blog. Za predpokladu, že takýto zdroj existuje, server odošle odpoveď, ktorá obsahuje hlavičky s podrobnosťami o tom, čo sa odosiela, a telo odpovede – HTML samotného článku.
Teraz má prehliadač kód HTML, ale predtým, ako sa budeme baviť o procese vykresľovania, vráťme sa späť, aby sme sa pozreli na to, čo sa stalo na serveri pred odoslaním kódu HTML.
WordPress
WordPress neposiela prehliadaču vopred pripravený kód HTML. Keď prehliadač odošle požiadavku na stránku na webe WordPress, HTML sa vytvorí za behu v milisekundách medzi požiadavkou a odpoveďou. WordPress sa skladá z desiatok súborov v programovacom jazyku PHP a týchto súborov, ktoré tvoria stránku. Keď sú spustené, súbory PHP kombinujú údaje z databázy so šablónami, aby vytvorili kompletnú stránku HTML.
Práve táto schopnosť dynamicky generovať HTML robí WordPress tak flexibilným a výkonným. Každá žiadosť môže byť zodpovedaná iným obsahom, čo každému používateľovi poskytuje jedinečný zážitok. Samotný HTTP je bezstavový: medzi požiadavkami si nič nepamätá, čo by znemožnilo komplexnú webovú aplikáciu založenú na reláciách. Ale so súbormi cookie relácie a dynamickým generovaním stránok môže WordPress poskytnúť zážitok podobný aplikácii zo servera.
Ak sa chcete dozvedieť viac o tom, ako WordPress generuje stránky, pozrite sa na Čo je to slučka WordPress?
Prehliadač
Prehliadač má dokument HTML, ale pred vykreslením stránky je potrebné urobiť viac. Webová stránka pozostáva z viac ako len HTML. HTML riadi štruktúru dokumentu a jeho textový obsah, ale jeho vzhľad určuje CSS. Mnohé stránky obsahujú aj JavaScript pre interaktívne alebo dynamické funkcie.
Súbory CSS a JavaScript sú prepojené v sekcii stránky HTML. Prehliadač vidí tieto odkazy, stiahne zdroje a použije ich na vytvorenie konečnej stránky. Po stiahnutí týchto počiatočných údajov sa spustí JavaScript a môže byť potrebné stiahnuť ďalšie zdroje zo serverov tretích strán. Každý zdroj zahrnutý na stránke HTML spúšťa cyklus odozvy a požiadavky podobný tomu, ktorý sme už opísali: DNS, nastavenie pripojenia TCP, požiadavka HTTP atď. Môžete vidieť, prečo zahrnutie množstva zdrojov tretích strán vedie k pomalému načítaniu stránok.
Keď je všetko načítané, prehliadač má to, čo potrebuje na vykreslenie dokumentu a jeho zobrazenie používateľovi.
Malé oneskorenia, veľké latencie
Ako vidíte, medzi kliknutím a vykreslenou webovou stránkou sa toho veľa deje. Malé oneskorenia v každej fáze spôsobujú značné oneskorenia. Prehliadač nemôže robiť nič, kým mu DNS server nepošle správnu IP adresu. Ak webhostingový server reaguje pomaly, prehliadač čaká. Ak WordPress nemá prostriedky, ktoré potrebuje na rýchle spustenie súborov PHP a dotazovanie sa v databáze, vykresľovanie stránky sa oneskorí. Webové stránky, ktoré spúšťajú množstvo dodatočných požiadaviek a obsahujú viacero veľkých súborov JavaScript, spôsobujú početné oneskorenia. Geografická vzdialenosť medzi serverom a prehliadačom všetko spomaľuje.
Zodpovednosť za optimalizáciu každého z týchto krokov je rozdelená medzi poskytovateľa webhostingu a vlastníka stránky. Postaráme sa o výkon DNS, optimalizáciu siete, zdroje servera a ďalšie, čím zaisťujeme, že môžeme doručovať údaje čo najrýchlejšie. Ako vlastník lokality ste však zodpovední za optimalizáciu veľkostí stránok a počtu externých zdrojov, ktoré každá stránka načíta.
Náš hosting s optimalizovaným výkonom a dobre optimalizované rozhranie front-end spoločne zabezpečujú rýchlu a pohotovú používateľskú skúsenosť.