Sobes.tech
Middle

Hogyan töltődik be egy weboldal?

sobes.tech MI

Válasz az MI-től

  1. A felhasználó beírja az URL-t a böngésző címsorába vagy rákattint egy linkre.
  2. URL elemzése: A böngésző elemzi az URL-t, hogy meghatározza a protokollt, a domaint, a portot és az útvonalat.
  3. IP-cím keresése: A böngésző ellenőrzi a DNS gyorsítótárat, majd az operációs rendszer gyorsítótárát, végül a router gyorsítótárát. Ha a cím nem található helyben, DNS-kiszolgálónak küld kérdést a domain név IP-címének megszerzéséhez.
  4. TCP kapcsolat létesítése (Handshake): A böngésző TCP kapcsolatot létesít a szerverrel a kapott IP-címmel (háromlépcsős kézfogás: SYN -> SYN-ACK -> ACK).
  5. HTTP kérés küldése: A böngésző HTTP kérést küld (általában GET) a szervernek a kért erőforrás (útvonal), a fejléc (User-Agent, Accept-Encoding, Cookie stb.) és a kérés törzse (ha van) megadásával.
    GET /index.html HTTP/1.1  
    Host: example.com  
    User-Agent: Mozilla/5.0 ...  
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8  
    
  6. A kérés feldolgozása a szerveren: A szerver megkapja a kérést, feldolgozza (pl. szerveroldali szkripteket futtat), és HTTP választ generál.
  7. HTTP válasz küldése: A szerver visszaküldi a HTTP választ a böngészőnek. A válasz tartalmazza az állapotkódot (pl. 200 OK), a fejlécet (Content-Type, Content-Length, Cache-Control stb.) és a válasz törzsét (a kért erőforrás tartalmát, pl. HTML fájlt).
    HTTP/1.1 200 OK  
    Content-Type: text/html; charset=UTF-8  
    Content-Length: 12345  
    Cache-Control: max-age=3600  
    
    <!DOCTYPE html>  
    <html>  
    <head>...</head>  
    <body>...</body>  
    </html>  
    
  8. HTML elemzése és DOM felépítése: A böngésző megkapja az HTML kódot, elemzi, és létrehozza a dokumentum objektum modelljét (DOM - Document Object Model) a memóriában. A DOM az HTML elemek fáját reprezentálja.
  9. Erőforrások betöltése és feldolgozása: Az HTML elemzése során a böngésző más erőforrásokra (CSS, JavaScript, képek, betűtípusok stb.) mutató hivatkozásokkal találkozik. Minden erőforrás esetében a lépések 3-7 ismétlődnek (IP keresés, TCP kapcsolat, HTTP kérés/válasz). Ezek betöltése párhuzamosan történhet (a párhuzamos kapcsolatok számával korlátozva).
  10. CSSOM felépítése: A böngésző elemzi a CSS fájlokat és a HTML-ben lévő <style> blokkokat, létrehozva a CSS objektum modellt (CSSOM - CSS Object Model). A CSSOM reprezentálja az oldalra alkalmazott stílusokat.
  11. Render Tree felépítése: A böngésző összekapcsolja a DOM-ot és a CSSOM-ot, hogy létrehozza a render fáját (Render Tree). A Render Tree csak a látható elemeket és azok stílusait tartalmazza. A display: none-al ellátott elemek nem kerülnek be.
  12. Elrendezés (Reflow): A böngésző kiszámítja minden elem pontos helyét és méretét az oldalban, a Render Tree, az ablak mérete és a stílusok alapján.
  13. Festés (Repaint): A böngésző minden elemet megrajzol a képernyőn a kiszámított pozíciókban és a alkalmazott stílusokkal. Ez rétegekben történik.
  14. Összeállítás: A böngésző összefűzi a megrajzolt rétegeket egy végső képet, amely a felhasználó képernyőjén jelenik meg.
  15. JavaScript végrehajtása: A szkriptek betöltése és elemzése közben a JavaScript kód végrehajtódik. A JavaScript végrehajtása befolyásolhatja a DOM-ot és a CSSOM-ot, újraindítva a Layout és a Festés lépéseket (Reflow/Repaint).

A tartalom megjelenítésének fő lépései:

  • DOMContentLoaded: Az esemény akkor aktiválódik, amikor a böngésző teljesen betöltötte és elemzte a HTML dokumentumot, és felépítette a DOM-ot, de vár a stíluslapok, képek és al-keretek betöltésére.
  • Load: Az esemény akkor aktiválódik, amikor az egész oldal, beleértve a képeket, szkripteket, stílusokat és más erőforrásokat, teljesen betöltődött.