Sobes.tech
Middle

Какво се случва, когато въведете адреса google.com в браузъра?

sobes.tech AI

Отговор от AI

  1. Парсинг на URL: Браузърът анализира въведения URL, определя протокола (HTTPS), домейн името (google.com) и порта (по подразбиране 443 за HTTPS).
  2. Търсене в кеша: Браузърът проверява собствената си DNS кеш, за да намери IP адрес, съответстващ на google.com.
  3. Заявка към Resolver: Ако няма запис в кеша, браузърът изпраща заявка към DNS резолвера, настроен в операционната система.
  4. Рекурсивна DNS заявка:
    • Резолвърът пита кореновите DNS сървъри.
    • Кореновите сървъри сочат към TLD сървърите за .com.
    • TLD сървърите за .com сочат към авторитативните DNS сървъри за google.com.
    • Авторитативните DNS сървъри за google.com връщат IP адрес(и) на уеб сървъра на Google.
  5. Създаване на TCP връзка (SYN/ACK): Браузърът инициира TCP връзка с получения IP адрес, използвайки тройно ръкостискане (SYN, SYN-ACK, ACK).
    // Клиент --> Сървър: SYN
    // Сървър --> Клиент: SYN-ACK
    // Клиент --> Сървър: ACK
    
  6. Създаване на TLS/SSL връзка: Тъй като протоколът е HTTPS, се извършва TLS/SSL ръкостискане за установяване на сигурна, криптирана връзка. Двете страни обменят сертификати и генерират сесийни ключове.
  7. Изпращане на HTTP/S заявка: Браузърът изпраща GET заявка към сървъра на Google за получаване на главната страница.
    GET / HTTP/1.1
    Host: google.com
    User-Agent: <информация за браузъра>
    Accept: text/html,...
    
  8. Обработка на заявката от сървъра: Уеб сървърът на Google (вероятно чрез load balancer) получава заявката, обработва я, евентуално комуникира с вътрешни услуги.
  9. Изпращане на HTTP/S отговор: Сървърът генерира HTTP/S отговор, който включва статус код (например 200 OK) и тялото на отговора (HTML код на страницата).
    HTTP/1.1 200 OK
    Content-Type: text/html; charset=UTF-8
    Content-Length: <размер на съдържанието>
    // ... други заглавки
    // Тяло на отговора (HTML)
    
  10. Рендериране на страницата: Браузърът получава HTML, анализира го и изгражда DOM дърво.
  11. Зареждане на ресурси: Браузърът открива връзки към CSS, JavaScript, изображения и други ресурси в HTML. За всеки ресурс се изпълняват стъпки 2-9 (или се използва съществуваща връзка), изпращат се заявки и се зареждат ресурсите.
  12. Изграждане на CSSOM: Браузърът анализира CSS и изгражда CSS Object Model.
  13. Изграждане на Render Tree: DOM и CSSOM се обединяват за създаване на дърво за рендериране.
  14. Разположение (Layout/Reflow): Браузърът изчислява геометричните размери и позициите на всеки елемент на страницата.
  15. Рисуване (Painting): Елементите се рисуват на екрана.
  16. Изпълнение на JavaScript: Браузърът изпълнява JavaScript кода, който може да променя DOM, CSSOM и да инициира допълнителни действия.
  17. Затваряне на връзката: След приключване на преноса, TCP връзката може да бъде затворена или оставена активна за последващи заявки (keep-alive).