Middle
Kas vyksta, kai į naršyklę įvedate adresą google.com?
sobes.tech AI
Atsakymas iš AI
- URL analizė: Naršyklė analizuoja įvestą URL, nustatydama protokolą (HTTPS), domeno vardą (google.com) ir prievadą (numatytasis 443 HTTPS).
- Kaso paieška: Naršyklė tikrina savo DNS cache, ar yra google.com atitinkamas IP adresas.
- Užklausa DNS resolveriui: Jei įrašas nėra cache, naršyklė užklausia IP adreso iš DNS resolverio, nustatyto operacinėje sistemoje.
- Rekursinė DNS užklausa:
- Resolveris klausia pagrindinių DNS serverių.
- Pagrindiniai serveriai nurodo į TLD serverius
.com. .comTLD serveriai nurodo į autoritatyvius DNS serverius google.com.- Autoritatyvūs DNS serveriai google.com grąžina Google web serverio IP adresą(-us).
- TCP ryšio sukūrimas (SYN/ACK): Naršyklė inicijuoja TCP ryšį su gautu IP adresu naudodama trijų krypčių rankos paspaudimą (SYN, SYN-ACK, ACK).
// Klientas --> Serveris: SYN // Serveris --> Klientas: SYN-ACK // Klientas --> Serveris: ACK - TLS/SSL ryšio sukūrimas: Kadangi tai HTTPS protokolas, vyksta TLS/SSL rankos paspaudimas, siekiant sukurti saugų, šifruotą ryšį. Abi šalys keičiasi sertifikatais ir generuoja sesijos raktus.
- HTTP/S užklausos siuntimas: Naršyklė siunčia GET užklausą Google serveriui, norėdama gauti pagrindinį puslapį.
GET / HTTP/1.1 Host: google.com User-Agent: <naršyklės informacija> Accept: text/html,... - Užklausos apdorojimas serveryje: Google web serveris (greičiausiai per apkrovos balansierių) priima užklausą, apdoroja ją, galbūt bendrauja su vidiniais servisais.
- HTTP/S atsakymo siuntimas: Serveris generuoja HTTP/S atsakymą, kuris apima būsenos kodą (pvz., 200 OK) ir atsakymo turinį (HTML kodą).
HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 Content-Length: <turinio dydis> // ... kiti antraštės // Atsakymo turinys (HTML) - Puslapio atvaizdavimas: Naršyklė gauna HTML, analizuoja jį ir kuria DOM medį.
- Išteklių įkėlimas: Naršyklė aptinka nuorodas į CSS, JavaScript, vaizdus ir kitus išteklius HTML. Kiekvienam ištekliui atliekami 2-9 žingsniai (arba naudojamas esamas ryšys), siunčiami užklausos ir įkeliami ištekliai.
- CSSOM kūrimas: Naršyklė analizuoja CSS ir kuria CSS Object Model.
- Render Tree kūrimas: DOM ir CSSOM sujungiami, kuriant atvaizdavimo medį.
- Išdėstymas (Layout/Reflow): Naršyklė apskaičiuoja kiekvieno elemento geometrinius matmenis ir padėtį puslapyje.
- Piešimas (Painting): Elementai yra piešiami ekrane.
- JavaScript vykdymas: Naršyklė vykdo JavaScript kodą, kuris gali keisti DOM, CSSOM ir inicijuoti papildomas veiksmus.
- Ryšio užbaigimas: Po duomenų perdavimo TCP ryšys gali būti uždaromas arba paliktas aktyvus būsimoms užklausoms (keep-alive).