Middle
Mi történik, amikor beírja a google.com címet a böngészőbe?
sobes.tech MI
Válasz az MI-től
- URL-parsing: A böngésző elemzi a megadott URL-t, meghatározva a protokollt (HTTPS), a domain nevet (google.com) és a portot (alapértelmezett 443 HTTPS esetén).
- Cache keresése: A böngésző ellenőrzi saját DNS-cache-ét, hogy megtalálja a google.com-hoz tartozó IP-címet.
- Kérés a Resolverhez: Ha nincs rekord a cache-ben, a böngésző kér egy IP-címet a rendszerbeállított DNS-resolvertől.
- Rekurzív DNS-kérés:
- A resolver kérdezi a gyökér DNS-szervereket.
- A gyökér szerverek a
.comTLD-szerverekre irányítanak. - A
.comTLD-szerverek a google.com hiteles DNS-szervereire mutatnak. - A google.com hiteles DNS-szerverei visszaadják a Google webszerver IP-cím(ek)et.
- TCP-kapcsolat létesítése (SYN/ACK): A böngésző elindítja a TCP-kapcsolatot a kapott IP-címmel, háromoldalas kézfogással (SYN, SYN-ACK, ACK).
// Kliens --> Szerver: SYN // Szerver --> Kliens: SYN-ACK // Kliens --> Szerver: ACK - TLS/SSL kapcsolat létesítése: Mivel HTTPS protokollról van szó, TLS/SSL kézfogás történik a biztonságos, titkosított kapcsolat kialakításához. Mindkét fél cserél tanúsítványokat és generál session kulcsokat.
- HTTP/S kérés küldése: A böngésző GET kérést küld a Google szerverének a főoldal lekéréséhez.
GET / HTTP/1.1 Host: google.com User-Agent: <böngésző információk> Accept: text/html,... - A kérés feldolgozása a szerveren: A Google web szervere (valószínűleg load balancer-en keresztül) fogadja a kérést, feldolgozza, esetleg belső szolgáltatásokkal kommunikálva.
- HTTP/S válasz küldése: A szerver HTTP/S választ generál, amely tartalmazza a státuszkódot (pl. 200 OK) és a válasz testét (oldal HTML-kódja).
HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 Content-Length: <tartalom mérete> // ... egyéb fejléc // Válasz test (HTML) - Az oldal renderelése: A böngésző megkapja a HTML-t, elemzi, és DOM-fát épít.
- Erőforrások betöltése: A böngésző észleli a CSS, JavaScript, képek és más erőforrásokra mutató hivatkozásokat a HTML-ben. Minden erőforrás esetében ismétlődnek a lépések 2-9, vagy meglévő kapcsolat használatával kérdések és erőforrások betöltése történik.
- CSSOM építése: A böngésző elemzi a CSS-t és CSS Object Modelt épít.
- Render Tree építése: A DOM és a CSSOM összekapcsolásával épül a renderelési fa.
- Elhelyezés (Layout/Reflow): A böngésző kiszámítja az egyes elemek geometriai méreteit és helyzetét az oldalon.
- Rajzolás (Painting): Az elemek megjelennek a képernyőn.
- JavaScript végrehajtása: A böngésző futtatja a JavaScript-kódot, amely módosíthatja a DOM-ot, CSSOM-ot, és további műveleteket indíthat.
- Kapcsolat lezárása: Az adatok átadása után a TCP-kapcsolat lezárható vagy fenntartható a későbbi kérésekhez (keep-alive).