Jak działa przeglądarka internetowa

Przeglądarka internetowa to złożony program, który w kilku etapach pobiera, przetwarza i wyświetla zasoby sieciowe. Od momentu wpisania adresu URL aż po interakcję z dynamiczną treścią, działa wiele komponentów współpracujących ze sobą, aby zapewnić płynne i bezpieczne przeglądanie stron. Poniższy tekst przybliża kluczowe etapy tego procesu oraz mechanizmy odpowiedzialne za optymalizację, bezpieczeństwo i rozszerzalność współczesnych przeglądarek.

Architektura i podstawy komunikacji

Cały cykl rozpoczyna się od wpisania adresu URL lub kliknięcia odnośnika. Przeglądarka przekształca nazwę domenową w adres IP korzystając z usługi DNS, a następnie wysyła żądanie HTTP lub HTTPS do serwera. W tej fazie odbywa się:

  • rozwiązanie nazwy domenowej przez DNS,
  • nawiązanie połączenia sieciowego (TCP lub QUIC),
  • wymiana nagłówków i ewentualna autoryzacja,
  • pobranie zasobu podstawowego (HTML, JSON lub innego).

Dzięki wbudowanemu mechanizmowi cache przeglądarka może uniknąć ponownego pobierania niezmienionych plików, co znacznie przyspiesza ładowanie kolejnych wizyt danej strony.

Silnik przeglądarki i proces renderowania

Następnym etapem jest analiza pobranego dokumentu HTML i stopniowe budowanie struktury obiektowej. Odpowiada za to parser, który tłumaczy tekst HTML na drzewiastą reprezentację zwanym DOM (Document Object Model).

Tworzenie drzew DOM i CSSOM

Równocześnie tworzony jest CSSOM – struktura odwzorowująca zasady stylowania CSS. Połączone modele DOM i CSSOM dają render tree, który definiuje, jakie elementy i w jaki sposób mają być wyświetlone.

  • Analiza HTML: wyodrębnianie elementów i atrybutów,
  • Analiza CSS: reguły, selektory i kaskadowość,
  • Łączenie DOM i CSSOM: określenie wyglądu każdego węzła,
  • Layout (reflow): obliczanie pozycji i rozmiarów.

Faza malowania i compositing

Gdy pozycje i style są już znane, następuje painting. Silnik wywołuje procedury odpowiedzialne za narysowanie obszarów na warstwach (layers). Na koniec moduł compositing łączy warstwy w ostateczny obraz, który trafia do bufora graficznego i widać go na ekranie.

Interakcje i wykonywanie skryptów

Nowoczesne strony pełne są JavaScript – to on pozwala na dynamiczną zmianę treści i interakcję z użytkownikiem. W przeglądarce znajduje się wbudowany silnik JS, odpowiedzialny za:

  • parsowanie kodu,
  • kompilację do kodu pośredniego (bytecode),
  • wieloetapową optymalizację w czasie rzeczywistym,
  • garbage collection (usuwanie nieużywanych obiektów).

Podczas wykonywania skryptu przeglądarka może wprowadzać zmiany w drzewie DOM i ponownie wywoływać etap układu lub malowania. Aby unikać zbyt częstych reflow czy repaint, warto korzystać z technik optymalizacyjnych, takich jak batched updates czy requestAnimationFrame.

Bezpieczeństwo, sandbox i rozszerzenia

Zachowanie użytkownika i jego danych wymaga wprowadzenia różnych mechanizmów ochronnych. Do najważniejszych należą:

  • Same-Origin Policy – ograniczenie dostępu do zasobów pomiędzy domenami,
  • sandbox – izolacja ramek