User-Agent Client Hints और UA रिडक्शन
Chromium-आधारित ब्राउज़र घटाई हुई User-Agent स्ट्रिंग भेजते हैं: जो विवरण किसी डिवाइस की सबसे सटीक पहचान करते थे, उन्हें तय मानों पर फ़्रीज़ कर दिया गया है, और सटीक डेटा User-Agent Client Hints (UA-CH) में चला गया है, जिसे साइट को माँगना पड़ता है। यह गाइड Android पर Chrome की एक पुरानी स्ट्रिंग को घटाई हुई स्ट्रिंग के साथ पार्स करती है।
हल किया गया उदाहरण
Mozilla/5.0 (Linux; Android 12; SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.88 Mobile Safari/537.36
- ब्राउज़र
- Chrome 99.0.4844.88
- इंजन
- Blink
- ऑपरेटिंग सिस्टम
- Android 12
- डिवाइस वर्ग
- मोबाइल
- डिवाइस
- Samsung SM-G991B
- CPU आर्किटेक्चर
- अज्ञात
- बॉट / क्रॉलर
- नहीं
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36
- ब्राउज़र
- Chrome 120.0.0.0
- इंजन
- Blink
- ऑपरेटिंग सिस्टम
- Android 10
- डिवाइस वर्ग
- मोबाइल
- डिवाइस
- K
- CPU आर्किटेक्चर
- अज्ञात
- बॉट / क्रॉलर
- नहीं
पुरानी स्ट्रिंग Android 12, Samsung मॉडल SM-G991B और पूरा संस्करण 99.0.4844.88 दिखाती है। घटाई हुई स्ट्रिंग में Android 10 और मॉडल K प्लेसहोल्डर हैं जिन्हें हर Android डिवाइस भेजता है, और संस्करण .0.0.0 पर ख़त्म होता है। पार्सर ठीक वही बताता है जो स्ट्रिंग कहती है — Android 10, मॉडल K — इसलिए अब केवल मुख्य संस्करण 120 और 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
मुख्य नियम
- घटाई हुई Chrome स्ट्रिंग केवल मुख्य संस्करण रखती हैं; माइनर, बिल्ड और पैच हमेशा 0.0.0 होते हैं।
- Android पर OS संस्करण 10 पर तय रहता है और डिवाइस मॉडल की जगह K आता है। डेस्कटॉप पर प्लेटफ़ॉर्म Windows NT 10.0; Win64; x64, Macintosh; Intel Mac OS X 10_15_7 या X11; Linux x86_64 जैसे मानों पर फ़्रीज़ रहता है।
- HTTPS पर Chromium ब्राउज़र डिफ़ॉल्ट रूप से तीन कम-एंट्रॉपी hints भेजते हैं: Sec-CH-UA (ब्रांड और मुख्य संस्करण), Sec-CH-UA-Mobile और Sec-CH-UA-Platform।
- Sec-CH-UA-Platform-Version, Sec-CH-UA-Model और Sec-CH-UA-Full-Version-List जैसे विस्तृत hints तभी भेजे जाते हैं जब सर्वर Accept-CH रिस्पॉन्स हेडर में उन्हें माँगता है। JavaScript में navigator.userAgentData.getHighEntropyValues() का उपयोग करें।
- ब्रांड सूची में जानबूझकर डाली गई एक नकली “GREASE” प्रविष्टि होती है, जैसे “Not_A Brand”। पूरे हेडर की तुलना करने के बजाय वही ब्रांड खोजें जिसकी आपको ज़रूरत है।
- Windows 11 अब भी User-Agent स्ट्रिंग में Windows NT 10.0 भेजता है; 13.0.0 या उससे ऊपर का Sec-CH-UA-Platform-Version, Windows 11 की पहचान कराता है।
- Client hints एक Chromium फ़ीचर है, इसलिए दूसरे ब्राउज़रों के लिए User-Agent पर आधारित फ़ॉलबैक रखें। यह पार्सर केवल User-Agent स्ट्रिंग पढ़ता है, client hints नहीं।