मुख्य सामग्री पर जाएँ

User-Agent Client Hints और UA रिडक्शन

Chromium-आधारित ब्राउज़र घटाई हुई User-Agent स्ट्रिंग भेजते हैं: जो विवरण किसी डिवाइस की सबसे सटीक पहचान करते थे, उन्हें तय मानों पर फ़्रीज़ कर दिया गया है, और सटीक डेटा User-Agent Client Hints (UA-CH) में चला गया है, जिसे साइट को माँगना पड़ता है। यह गाइड Android पर Chrome की एक पुरानी स्ट्रिंग को घटाई हुई स्ट्रिंग के साथ पार्स करती है।

हल किया गया उदाहरण

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 आर्किटेक्चर
अज्ञात
बॉट / क्रॉलर
नहीं
Android पर Chrome, घटाई हुई स्ट्रिंग
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 टोकन में असली जानकारी बचती है।

कम-एंट्रॉपी hints जो Chromium ब्राउज़र डिफ़ॉल्ट रूप से भेजता है, और ज़्यादा जानकारी माँगने वाला Accept-CH रिस्पॉन्स हेडर
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 नहीं।

और user agent गाइड