User-Agent स्ट्रिंग क्या है?
User-Agent हेडर रिक्वेस्ट भेजने वाले क्लाइंट की पहचान बताता है — ब्राउज़र परिवार और वर्ज़न, ऑपरेटिंग सिस्टम, डिवाइस क्लास, या क्रॉलर का नाम। इसका फ़ॉर्मेट परतों में बढ़ा है, इसलिए ज़्यादातर स्ट्रिंग में "Mozilla/5.0" जैसे ऐतिहासिक टोकन होते हैं; इसे पार्स करना कम्पैटिबिलिटी टेस्टिंग और एनालिटिक्स के लिए उपयोगी है, पर यह स्व-घोषित और आसानी से नकली बनने वाला है, इसलिए सुरक्षा निर्णयों में कभी इस पर भरोसा न करें।
Mozilla/5.0, AppleWebKit और Safari ऐतिहासिक टोकन हैं: सिर्फ़ Chrome/ ब्राउज़र और इंजन बताता है, और प्लेटफ़ॉर्म तथा वर्ज़न का आख़िरी हिस्सा फ़्रीज़ हैं।एक User-Agent हेडर वैल्यू
भाग 1:Mozilla/5.0
- 1ऐतिहासिक टोकनज़्यादातर स्ट्रिंग में होता है; यह ब्राउज़र के बारे में कुछ नहीं बताता
- 2प्लेटफ़ॉर्मऑपरेटिंग सिस्टम जैसा भेजा गया वैसा बताया जाता है;
Kसिर्फ़ placeholder है, इसलिए कोई मॉडल नहीं दिखताAndroid 10फ़्रीज़ - 3कम्पैटिबिलिटी टोकनChrome के लिए अनदेखे किए जाते हैं: इंजन Blink 126.0.0.0
Chrome/टोकन से पढ़ा जाता है - 4ब्राउज़र और major वर्ज़नवर्ज़न का इकलौता असली हिस्सा
Google Chrome 126.0.0.0 (major 126) - 5minor, build और patchChrome 101 से 0.0.0 पर फ़्रीज़फ़्रीज़
- 6डिवाइस क्लासडिवाइस टाइप:
mobile;Mobileके बिना Android डिवाइस टैबलेट माना जाता है - 7कम्पैटिबिलिटी टोकनअनदेखा किया जाता है: Safari से पहले Chrome का मिलान होता है
पेज का उदाहरण, एक reduced User-Agent; हर वैल्यू वही है जो टूल इसके लिए बताता है। असली वर्ज़न और मॉडल सिर्फ़ Client Hints से मिलते हैं।
User-Agent पार्सर कैसे इस्तेमाल करें
- लॉग, एनालिटिक्स या बग रिपोर्ट से User-Agent स्ट्रिंग पेस्ट करें — या फ़ील्ड ख़ाली छोड़कर अपने ही ब्राउज़र का विश्लेषण करें।
- Parse पर क्लिक करें (या "Use my browser's User-Agent" चुनें)।
- ब्राउज़र, इंजन, OS और डिवाइस वाली पंक्तियाँ पढ़ें; ट्रैफ़िक पर भरोसा करने से पहले बॉट वाली पंक्ति ज़रूर देखें।
- नतीजा निकालने से पहले नोट पढ़ें, जैसे reduced UA स्ट्रिंग से जुड़ी सीमाएँ।
User-Agent पार्सर की खूबियाँ
- Chrome, Edge, Firefox, Safari, Opera, Samsung Internet, Brave, Vivaldi, UC, in-app ब्राउज़र और अन्य के लिए ब्राउज़र फ़ैमिली तथा वर्शन
- रेंडरिंग इंजन (Blink, WebKit, Gecko, Trident, EdgeHTML), Chrome 28 पर Blink/WebKit के विभाजन सहित
- ऑपरेटिंग सिस्टम और वर्शन — पढ़ने में आसान Windows नाम, iOS/iPadOS के अंडरस्कोर सामान्यीकृत, macOS, Android, Chrome OS, Linux डिस्ट्रीब्यूशन, कंसोल और TV
- डिवाइस टाइप (डेस्कटॉप, मोबाइल, टैबलेट, TV, कंसोल, wearable, बॉट) और मौजूद होने पर Android वेंडर तथा मॉडल
- 70 से ज़्यादा क्रॉलर, सोशल प्रीव्यू बॉट, AI बॉट, SEO स्पाइडर, मॉनिटरिंग सेवाएँ और headless ब्राउज़र की पहचान
- प्रोग्रामैटिक क्लाइंट (curl, python-requests, okhttp, Go, Postman, axios…) ब्राउज़र नहीं, टूल के रूप में पहचाने जाते हैं
- reduced/frozen User-Agent स्ट्रिंग और दूसरी अस्पष्टताओं के बारे में नोट
User-Agent पार्सर का उदाहरण
Android पर मौजूदा Chrome की स्ट्रिंग पार्स करना
इनपुट:
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Mobile Safari/537.36आउटपुट:
Browser: Google Chrome 126.0.0.0 (major 126)
Rendering engine: Blink 126.0.0.0
Operating system: Android 10
Device type: mobile
Is bot: No
Note: Reduced User-Agent (Chrome 101+): only the major version is real; minor/build/patch are frozen to 0.0.0.
Note: Reduced User-Agent: Android version and device model are frozen ("Android 10; K").User-Agent पार्सर के बारे में अक्सर पूछे जाने वाले सवाल
अपना User-Agent कैसे देखूँ?
इनपुट ख़ाली छोड़कर Parse पर क्लिक करें, या "Use my browser's User-Agent" दबाएँ। स्ट्रिंग आपके ब्राउज़र के navigator.userAgent से पढ़ी जाती है और लोकली ही विश्लेषित होती है।
Windows 11 पर Chrome वर्शन 126.0.0.0 और Windows 10 क्यों बताता है?
Chrome अपना User-Agent चरणों में "reduce" करता है: Chrome 101 से सिर्फ़ major वर्शन असली होता है (minor, build और patch 0.0.0 पर फ़्रीज़ हैं); डेस्कटॉप पर Chrome 107 से और Android पर Chrome 110 से प्लेटफ़ॉर्म भी फ़्रीज़ है (Windows NT 10.0, macOS 10.15.7, "Android 10; K")। टूल ऐसे मामलों को चिह्नित करता है; सटीक वैल्यू सिर्फ़ Client Hints से मिलती हैं।
कौन-कौन से बॉट पहचाने जाते हैं?
सर्च इंजन (Googlebot, Bingbot, Baiduspider, Yandex, DuckDuckBot, Applebot), सोशल प्रीव्यू बॉट (Facebook, Twitter, LinkedIn, Slack, Discord, WhatsApp), AI क्रॉलर (GPTBot, ClaudeBot, PerplexityBot, CCBot, Bytespider), SEO क्रॉलर (Ahrefs, Semrush, MJ12), मॉनिटरिंग सेवाएँ और headless ब्राउज़र, साथ ही सामान्य bot/crawler/spider fallback।
iPad को macOS क्यों बताया जाता है?
iPadOS 13 से iPad का Safari डिफ़ॉल्ट रूप से डेस्कटॉप macOS वाला User-Agent भेजता है। फ़र्क़ सिर्फ़ JavaScript में touch डिटेक्शन से पता चलता है, इसलिए टूल इस अस्पष्टता को नोट कर देता है।
क्या सुरक्षा से जुड़े फ़ैसलों के लिए इस नतीजे पर भरोसा किया जा सकता है?
नहीं। User-Agent स्ट्रिंग आसानी से नक़ली बनाई जा सकती है। इन्हें एनालिटिक्स और progressive enhancement के लिए इस्तेमाल करें; क्रॉलर की पुष्टि reverse DNS से करें और authorization के लिए UA का इस्तेमाल कभी न करें।
तकनीकी नोट्स
पार्सिंग regex पर आधारित है और सबसे ख़ास से सबसे सामान्य के क्रम में चलती है: पहले टूल (वे स्ट्रिंग की शुरुआत में आते हैं), फिर बॉट, फिर वे ब्राउज़र जिनके टोकन दूसरों को ढक लेते हैं (Chrome से पहले Edge, Safari से पहले Chrome, iOS पर Safari से पहले CriOS/FxiOS)। Safari का Safari/6xx टोकन असल में WebKit बिल्ड नंबर है, इसलिए वर्शन Version/x.y से लिया जाता है।
इंजन, OS और डिवाइस के नियमों की तालिकाएँ असल दुनिया की 30 से ज़्यादा स्ट्रिंग पर यूनिट-टेस्ट की गई हैं, जिनमें reduced UA स्ट्रिंग और ब्राउज़र की नक़ल करने वाले बॉट भी शामिल हैं।
संदर्भ
- User-Agent header — MDNUser-Agent हेडर का फ़ॉर्मेट और प्रमुख ब्राउज़रों व क्रॉलरों द्वारा भेजी जाने वाली स्ट्रिंग।
- RFC 9110: HTTP SemanticsHTTP मेथड, हेडर फ़ील्ड, स्टेटस कोड और कंटेंट निगोशिएशन के अर्थ, वायर वर्ज़न से स्वतंत्र।