Wszystkie artykuły

User-Agent: dlaczego ten ciąg jest takim bałaganem

Spójrzmy na User-Agent nowoczesnej Chrome — zobaczymy coś w rodzaju "Mozilla/5.0 ... AppleWebKit/537.36 ... Chrome/120.0 Safari/537.36" — ciąg pełen nazw przeglądarek, którymi Chrome tak naprawdę nie jest. To efekt dekad historycznych obejść, a nie przypadek.

Skąd wzięło się słowo „Mozilla"

W latach 90. strony wykrywały możliwości przeglądarki, sprawdzając, czy User-Agent zawiera „Mozilla" (kryptonim Netscape Navigatora, ówczesnego lidera rynku). Gdy Internet Explorer chciał otrzymywać tę samą „zaawansowaną" zawartość, zaczął dodawać „Mozilla" również do swojego User-Agenta — i ten precedens zakorzenił się w branży na stałe.

Testowanie cross-browserowe jako polska specjalność IT

Polska jest jednym z większych europejskich centrów outsourcingu QA i testowania oprogramowania, gdzie testy cross-browserowe i cross-device to codzienna praca wielu zespołów pracujących dla klientów z Europy Zachodniej i USA. W takiej pracy parsowanie i analiza User-Agent wciąż bywa praktycznym narzędziem — przy diagnozowaniu, czy raportowany błąd faktycznie pochodzi od konkretnej wersji przeglądarki, czy raczej od nietypowego urządzenia, zanim jeszcze sięgnie się po pełne środowisko testowe z danym User-Agentem.

Dlaczego wykrywanie po User-Agent jest niewiarygodne

Ponieważ każda nowa przeglądarka dopisuje do User-Agenta tokeny swoich poprzedników dla zachowania kompatybilności, ten ciąg zamienił się w stos historycznych naleciałości, a nie precyzyjny opis przeglądarki. Obecną dobrą praktyką jest bezpośrednie wykrywanie wsparcia dla konkretnych funkcji JavaScript/CSS, zamiast parsowania User-Agenta.

Do czego się to przydaje

  • Diagnozować problemy z kompatybilnością, sprawdzając dokładnie, jaką przeglądarkę i wersję zgłasza klient.
  • Zrozumieć logi serwera, w których zapisywany jest User-Agent odwiedzających.
  • Zrozumieć, dlaczego stary kod wykrywania przeglądarki oparty na User-Agencie często się myli.

User-Agent Client Hints jako zamiennik

Zamiast parsować jeden przeładowany ciąg, nowoczesne przeglądarki oparte na Chromium obsługują teraz User-Agent Client Hints — osobne nagłówki takie jak Sec-CH-UA, Sec-CH-UA-Platform i Sec-CH-UA-Mobile, o które serwer musi jawnie poprosić i które otrzymuje w ustrukturyzowanej formie. To część szerszego trendu „User-Agent Reduction" na rzecz prywatności, więc z czasem klasyczny ciąg User-Agent będzie niósł coraz mniej szczegółów.

Wypróbuj narzędzie