वेब डेवलपमेंट करते समय अक्सर ऐसा होता है कि वेब ब्राउज़र के प्रकार या ऑपरेटिंग सिस्टम के अनुसार अलग स्क्रीन दिखानी पड़ती है, या फिर आने वाले यूज़र के प्लेटफ़ॉर्म का सांख्यिकीय विश्लेषण करना होता है। इस काम में इस्तेमाल होने वाली चीज़ों में से एक है [User Agent](User Agent) string, जिसे वेब ब्राउज़र HTTP request header में जोड़ता है। इसके ज़रिए प्लेटफ़ॉर्म और ब्राउज़र को अलग पहचानने का तरीका भले ही व्यापक रूप से इस्तेमाल होता रहा हो, लेकिन यह string Netscape के ज़माने से ही compatibility जैसी वजहों के कारण उलझी हुई और समझना मुश्किल रही है। अब तो हालात और भी आगे बढ़ चुके हैं, और लगभग सभी ब्राउज़र एक-दूसरे जैसे दिखने का नाटक कर रहे हैं। उदाहरण के लिए, जिस ब्राउज़र का मैं इस्तेमाल कर रहा हूँ उसकी User-Agent string इस तरह है:
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4003.0 Safari/537.36 Edg/81.0.381.0
अगर आपके पास कोई दूसरी पृष्ठभूमि जानकारी न हो और सिर्फ़ यह User-Agent string हो, तो यह समझना लगभग नामुमकिन होगा कि यह आख़िर कौन-सा ब्राउज़र है। Mozilla Firefox? Chrome? Safari? Edge? सही जवाब है Microsoft Edge Dev version। प्लेटफ़ॉर्म का अंदाज़ा शायद कुछ हद तक लग जाए, लेकिन इस string को parse करके प्लेटफ़ॉर्म पहचान में इस्तेमाल करना भी सिरदर्द ही है।
Google ने इस समस्या को हल करने के लिए User-Agent string को चरणबद्ध तरीके से बंद करने और उसकी जगह [Client Hints](Client Hints) इस्तेमाल करने का प्रस्ताव रखा है। Client Hints का मतलब है कि अभी User-Agent string में मौजूद जानकारी को 7 fields में बाँटकर HTTP request header में जोड़ा जाए (ब्राउज़र नाम / ब्राउज़र major version / ब्राउज़र full version / प्लेटफ़ॉर्म नाम और version / प्लेटफ़ॉर्म architecture / hardware model name / mobile है या नहीं)।
Google का कहना है कि इस साल (2020) के भीतर Chrome की User-Agent string को freeze कर दिया जाएगा ताकि वह आगे न बदले (compatibility समस्या के कारण इसे पूरी तरह हटाया नहीं जा सकता), और इसकी जगह इस Client Hints का इस्तेमाल शुरू किया जाएगा। Mozilla, Apple, MS जैसी दूसरी प्रमुख वेब ब्राउज़र कंपनियाँ भी इसे support करने की योजना रखती हैं, लेकिन अभी ठोस विवरण सामने नहीं आया है। अगर दूसरे वेब ब्राउज़र भी इसे अपनाना शुरू कर दें, तो इसके व्यापक रूप से फैलने में कोई बड़ी दिक्कत नहीं होनी चाहिए। लेकिन Google का अपना वह रवैया, जिसमें वह अपने ब्राउज़र के अलावा दूसरी सेवाओं के साथ भेदभाव करता रहा है, इस प्रस्ताव का खुले दिल से स्वागत करना भी आसान नहीं बनाता।
Google के Client Hints प्रस्ताव का विवरण :
https://wicg.github.io/ua-client-hints/
User-Agent string का इतिहास :
अभी कोई टिप्पणी नहीं है.