User-Agent Client Hints i redukcja UA
Przeglądarki oparte na Chromium wysyłają zredukowany ciąg User-Agent: szczegóły, które najdokładniej identyfikowały urządzenie, zamrożono na stałych wartościach, a precyzyjne dane przeniesiono do User-Agent Client Hints (UA-CH), o które strona musi poprosić. Ten poradnik analizuje starszy ciąg Chrome w systemie Android obok zredukowanego.
Przykład krok po kroku
Mozilla/5.0 (Linux; Android 12; SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.88 Mobile Safari/537.36
- Przeglądarka
- Chrome 99.0.4844.88
- Silnik
- Blink
- System operacyjny
- Android 12
- Klasa urządzenia
- Mobilne
- Urządzenie
- Samsung SM-G991B
- Architektura CPU
- Nieznane
- Bot / crawler
- Nie
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36
- Przeglądarka
- Chrome 120.0.0.0
- Silnik
- Blink
- System operacyjny
- Android 10
- Klasa urządzenia
- Mobilne
- Urządzenie
- K
- Architektura CPU
- Nieznane
- Bot / crawler
- Nie
Starszy ciąg ujawnia Android 12, model Samsunga SM-G991B i pełną wersję 99.0.4844.88. W zredukowanym ciągu Android 10 i model K to symbole zastępcze wysyłane przez każde urządzenie z Androidem, a wersja kończy się na .0.0.0. Parser podaje dokładnie to, co mówi ciąg — Android 10, model K — więc prawdziwą informację niosą już tylko wersja główna 120 i token Mobile.
Sec-CH-UA: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120" Sec-CH-UA-Mobile: ?1 Sec-CH-UA-Platform: "Android" Accept-CH: Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List
Najważniejsze zasady
- Zredukowane ciągi Chrome zachowują tylko wersję główną; wersja podrzędna, kompilacja i poprawka to zawsze 0.0.0.
- Na Androidzie wersja systemu jest ustalona na 10, a model urządzenia zastąpiony przez K. Na komputerach platforma jest zamrożona na wartościach takich jak Windows NT 10.0; Win64; x64, Macintosh; Intel Mac OS X 10_15_7 lub X11; Linux x86_64.
- Przez HTTPS przeglądarki Chromium domyślnie wysyłają trzy wskazówki o niskiej entropii: Sec-CH-UA (marki i wersje główne), Sec-CH-UA-Mobile i Sec-CH-UA-Platform.
- Szczegółowe wskazówki, takie jak Sec-CH-UA-Platform-Version, Sec-CH-UA-Model i Sec-CH-UA-Full-Version-List, są wysyłane dopiero wtedy, gdy serwer poprosi o nie w nagłówku odpowiedzi Accept-CH. W JavaScripcie użyj navigator.userAgentData.getHighEntropyValues().
- Lista marek zawiera celowo fałszywy wpis „GREASE”, np. „Not_A Brand”. Szukaj potrzebnej marki, zamiast porównywać cały nagłówek.
- Windows 11 nadal wysyła Windows NT 10.0 w ciągu User-Agent; Sec-CH-UA-Platform-Version o wartości 13.0.0 lub wyższej oznacza Windows 11.
- Client hints to funkcja Chromium, więc zachowaj rozwiązanie awaryjne oparte na User-Agent dla innych przeglądarek. Ten parser odczytuje tylko ciąg User-Agent, nie client hints.