El nem tudnád képzelni, mi minden zajlik a háttérben, miután beírod, hogy google.com, és leütöd az entert

2018.06.06. · TECH

A GitHub egyik felhasználója, Alex Gaynor szedte össze kimerítő részletességgel a válaszokat arra a webfejlesztői állásinterjúkon gyakran előforduló kérdésre, hogy milyen lépések zajlanak le egy egyszerű Google-keresés során.

Bár a lépések további apró lépéseket rejtenek magukban (a DNS lookup például önmagában is egy hat allépésből álló alfolyamat), a lényeg a következő húsz pontban foglalható össze:

  1. Leütöd a „g” billentyűt
  2. Leütöd az entert
  3. A programmegszakítási folyamat során a processzor érzékeli, hogy leütötted az entert
  4. A billentyűzet drivere a jelet kóddá alakítja, majd az operációs rendszer elküldi a leütés üzenetét a böngészőnek (Windows esetében WM_KEYDOWN, OS X-nél KeyDown)
  5. A böngésző elemezi az URL-t
  6. A böngésző eldönti, hogy URL-t írtál be, vagy keresőkifejezést
  7. A böngésző konvertálja host nevének nem ASCII Unicode karaktereit (a-z, A-Z, 0-9, -, .), ez a Google esetében nem releváns
  8. A böngésző ellenőrzi a HSTS listát – ha a webhely rajta van a listán, HTTPS-en keresztül nyitja meg, ha nincs rajta, HTTP-n keresztül
  9. A böngésző ellenőrzi, hogy a cím szerepel-e a DNS-gyorsítótárban
  10. A hálózat végrehajtja a címfeloldási protokollt
  11. A böngésző megkapja a célszerver IP-címét, és kérvényez egy TCP socketet
  12. Végbemegy a TLS handshake titkosítási folyamat
  13. A böngésző küld egy HTTP kérést a szervernek
  14. A HTTPD szerver kezeli a kérést
  15. A böngésző fogadja a forrásokat (HTML, CSS, JS) és leképzi a DOM fát
  16. A böngésző elemzi a HTML-t
  17. A böngésző értelmezi a CSS-t
  18. A böngésző az előző lépések alapján leképzi az oldalt
  19. A CPU és a GPU is részt vesz az oldal leképzésében
  20. A böngésző végrehajtja a JavaScript kódjait (például a Google Doodle animációk esetében)

Nem győzzük hangsúlyozni, ez csak egy egyszerű kivonata a rettenetesen hosszadalmas és bonyolult folyamatnak – itt megtalálható részletesen az összes lépés.