Sobes.tech
Middle

Kuidas laaditakse veebilehte?

sobes.tech AI

Vastus AI-lt

  1. Kasutaja sisestab URL-i brauseri aadressiribale või klikib lingil.
  2. URL-i analüüs: Brauser analüüsib URL-i, et määrata protokoll, domeen, port ja tee.
  3. IP-aadressi otsimine: Brauser kontrollib DNS-vahemälu, siis operatsioonisüsteemi vahemälu, siis ruuteri vahemälu. Kui aadressi ei leita kohapeal, saadetakse päring DNS-serverile domeeninime IP-aadressi saamiseks.
  4. TCP-ühenduse loomine (Handshake): Brauser loob TCP-ühenduse serveriga vastavalt saadud IP-aadressile (kolmepoolne käepigistus: SYN -> SYN-ACK -> ACK).
  5. HTTP-päringu saatmine: Brauser saadab HTTP-päringu (tavaliselt GET) serverile nõutava ressursi (tee), päistega (User-Agent, Accept-Encoding, Cookie jms) ja päringu kehas (kui on).
    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. Päringu töötlemine serveris: Server saab päringu, töötleb seda (näiteks täidab serveripoolseid skripte) ja koostab HTTP-vastuse.
  7. HTTP-vastuse saatmine: Server saadab HTTP-vastuse brauserile. Vastus sisaldab staatusekoodi (näiteks 200 OK), päiseid (Content-Type, Content-Length, Cache-Control jms) ja vastuse keha (päringus olev ressurss, näiteks HTML-fail).
    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-i analüüs ja DOM-i loomine: Brauser hakkab saama HTML-koodi ja analüüsib seda, luues dokumendi objekti mudeli (DOM - Document Object Model) mällu. DOM kujutab endast HTML-elementide puu.
  9. Resursside laadimine ja töötlemine: HTML-i analüüsi käigus kohtab brauser linke teistele ressurssidele (CSS, JavaScript, pildid, fondid jms). Iga ressursi puhul tehakse sammud 3-7 (IP otsing, TCP ühendus, HTTP päring/vastus). Ressursside laadimine võib toimuda paralleelselt (piirates samaaegsete ühenduste arvu).
  10. CSSOM-i loomine: Brauser analüüsib CSS-faile ja <style>-bloke HTML-is, luues CSS objekti mudeli (CSSOM - CSS Object Model). CSSOM kujutab endast elementidele rakendatavaid stiile.
  11. Render Tree loomine: Brauser ühendab DOM-i ja CSSOM-i, et luua renderimispuu (Render Tree). Render Tree sisaldab ainult nähtavaid elemente ja nende stiile. Elemendid display: none ei kuulu.
  12. Layout (Reflow): Brauser arvutab iga elemendi täpse positsiooni ja suuruse maketil, lähtudes Render Tree-st, vaateakna suurusest ja stiilidest.
  13. Värvimine (Repaint): Brauser joonistab iga elemendi ekraanile arvutatud positsioonidel ja stiilidega. See toimub kihtides.
  14. Komponeerimine: Brauser ühendab joonistatud kihid lõplikuks pildiks, mis kuvatakse kasutaja ekraanil.
  15. JavaScripti täitmine: Skriptide laadimise ja analüüsi ajal täidetakse JavaScripti kood. JavaScripti täitmine võib mõjutada DOM-i ja CSSOM-i, põhjustades uuesti Layout ja Painting samme (Relayout/Repaint).