Middle
Čo sa stane, keď zadáte adresu google.com do prehliadača?
sobes.tech AI
Odpoveď od AI
- Parsig URL: Prehliadač analyzuje zadaný URL, určujúc protokol (HTTPS), doménové meno (google.com) a port (predvolené 443 pre HTTPS).
- Hľadanie v cache: Prehliadač kontroluje vlastnú DNS cache, či nájde IP adresu zodpovedajúcu google.com.
- Žiadosť na Resolver: Ak v cache nie je záznam, prehliadač požaduje IP adresu od DNS resolvera nastaveného v operačnom systéme.
- Rekurzívna DNS žiadosť:
- Resolver sa pýta na koreňové DNS servery.
- Koreňové servery ukazujú na TLD servery pre
.com. - TLD servery pre
.comukazujú na autoritatívne DNS servery pre google.com. - Autoritatívne DNS servery pre google.com vracajú IP adresu(y) webového servera Google.
- Vytvorenie TCP spojenia (SYN/ACK): Prehliadač naväzuje TCP spojenie s obdržanou IP adresou pomocou trojstranného handshake (SYN, SYN-ACK, ACK).
// Klient --> Server: SYN // Server --> Klient: SYN-ACK // Klient --> Server: ACK - Vytvorenie TLS/SSL spojenia: Pretože ide o HTTPS, prebieha TLS/SSL handshake na naviazanie bezpečného, šifrovaného spojenia. Obe strany si vymieňajú certifikáty a generujú relácie kľúče.
- Odoslanie HTTP/S požiadavky: Prehliadač odošle GET požiadavku na server Google na získanie hlavnej stránky.
GET / HTTP/1.1 Host: google.com User-Agent: <informácie o prehliadači> Accept: text/html,... - Spracovanie požiadavky serverom: Webový server Google (pravdepodobne cez load balancer) prijíma požiadavku, spracováva ju, prípadne komunikuje s internými službami.
- Odoslanie HTTP/S odpovede: Server generuje HTTP/S odpoveď, ktorá obsahuje stavový kód (napríklad 200 OK) a telo odpovede (HTML kód stránky).
HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 Content-Length: <veľkosť obsahu> // ... ďalšie hlavičky // Telo odpovede (HTML) - Renderovanie stránky: Prehliadač obdrží HTML, analyzuje ho a vytvára DOM strom.
- Načítanie zdrojov: Prehliadač zistí odkazy na CSS, JavaScript, obrázky a ďalšie zdroje v HTML. Pre každý zdroj sa vykonajú kroky 2-9 (alebo sa použije existujúce spojenie), odosielajú sa požiadavky a načítavajú zdroje.
- Vytváranie CSSOM: Prehliadač analyzuje CSS a vytvára CSS Object Model.
- Vytváranie Render Tree: DOM a CSSOM sa spájajú na vytvorenie stromu vykresľovania.
- Umiestnenie (Layout/Reflow): Prehliadač vypočíta geometrické rozmery a pozície každého prvku na stránke.
- Vykreslenie (Painting): Prvky sa vykresľujú na obrazovku.
- Spustenie JavaScriptu: Prehliadač spúšťa JavaScript kód, ktorý môže meniť DOM, CSSOM a iniciovať ďalšie akcie.
- Zatvorenie spojenia: Po dokončení prenosu dát môže byť TCP spojenie zatvorené alebo ponechané aktívne pre ďalšie požiadavky (keep-alive).