स्वीकार की जाने वाली भाषाओं की संख्या को कम करने की सुविधा, पैसिव फ़िंगरप्रिंटिंग के प्लैटफ़ॉर्म को कम करने के लिए बनाई गई है. इसके लिए, Accept-Language
हेडर में उपयोगकर्ता की भाषा की प्राथमिकताओं को कम किया जाता है और सिर्फ़ उपयोगकर्ता की सबसे पसंदीदा भाषा (सिर्फ़ एक) भेजी जाती है.
Chrome 109 बीटा वर्शन से, हम स्वीकार की जाने वाली भाषाओं की संख्या को कम करने के लिए, ऑरिजिन ट्रायल शुरू करेंगे. इससे साइटों को कम किए गए Accept-Language
हेडर को पाने के लिए ऑप्ट-इन करने की सुविधा मिलेगी. इससे साइटों को, कम किए गए Accept-Language
के Chrome के आने वाले वर्शन में डिफ़ॉल्ट तौर पर लागू होने से पहले, समस्याओं का पता लगाने और उन्हें ठीक करने का मौका मिलेगा. इस सुविधा को सभी के लिए लॉन्च होने से पहले टेस्ट करने के लिए, Chrome 109 के रिलीज़ होने की तारीख से पहले ऑप्ट इन करें और टेस्ट करें. फ़िलहाल, इसकी रिलीज़ की तारीख 10 जनवरी, 2023 तय की गई है.
Accept-Language
हेडर के उदाहरण यहां देखें. इनमें, हेडर के साइज़ में कमी से पहले और बाद की इमेज शामिल हैं.
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Accept-Language: en-GB
यहां ऑरिजिन ट्रायल के बारे में खास जानकारी दी गई है. साथ ही, यह भी बताया गया है कि आपको क्या उम्मीद करनी चाहिए. इस बदलाव या ऑरिजिन ट्रायल के दौरान आने वाली किसी भी समस्या के बारे में अपना सुझाव, राय या शिकायत Accept-Language Reduction GitHub रिपॉज़िटरी में शेयर की जा सकती है.
Accept-Language क्या है?
Accept-Language स्ट्रिंग को हर एचटीटीपी अनुरोध पर शेयर किया जाता है. साथ ही, ब्राउज़र से लोड किए गए सभी संसाधनों के लिए, JavaScript में दिखाया जाता है. फ़िलहाल, इसमें उपयोगकर्ता की सभी पसंदीदा भाषाएं शामिल हैं.
स्वीकार की जाने वाली भाषाओं की संख्या को क्यों कम किया जा रहा है?
स्वीकार की जाने वाली भाषाओं की संख्या को कम करने की सुविधा, Chrome में पैसिव फ़िंगरप्रिंटिंग के लिए इस्तेमाल होने वाले प्लैटफ़ॉर्म की संख्या को कम करने के लिए बनाई गई है.
फ़िलहाल, Accept-Language
हेडर हर HTTP अनुरोध पर डिफ़ॉल्ट रूप से शेयर किया जाता है. साथ ही, ब्राउज़र से लोड किए गए सभी संसाधनों के लिए, JavaScript में दिखाया जाता है. इसमें, उपयोगकर्ता की पसंदीदा सभी भाषाएं शामिल होती हैं. हम साइटों के लिए, कई भाषाओं में कॉन्टेंट उपलब्ध कराने का एक नया तरीका पेश कर रहे हैं. इससे, ब्राउज़र को उन भाषाओं की पूरी सूची भेजने की ज़रूरत नहीं पड़ेगी जिन्हें उपयोगकर्ता ने कॉन्फ़िगर किया है. इसके बजाय, ब्राउज़र भाषा के लिए बातचीत करने और पसंदीदा भाषा दिखाने की ज़िम्मेदारी लेगा.
एक और वजह यह है कि हो सकता है कि कई साइटें, भाषा के लिए बातचीत करने के लिए Accept-Language
हेडर का इस्तेमाल न कर रही हों. उदाहरण के लिए, एक अध्ययन से पता चलता है कि शीर्ष 10,000 साइटों में से सिर्फ़ 7.2% साइटें Accept-Language
का इस्तेमाल करती हैं. Chrome के गुप्त मोड ने पहले ही Accept-Language
को एक पर कम कर दिया है.
वेब डेवलपर के लिए इसका क्या मतलब है?
भाषा से जुड़ी बातचीत के लिए Accept-Language
पर निर्भर रहने वाली साइटों को, Accept-Language
में कमी आने की तैयारी करनी चाहिए. साथ ही, ऑरिजिन ट्रायल में हिस्सा लेना चाहिए. कम की गई Accept-Language
वैल्यू यहां दिखेंगी:
Accept-Language
एचटीटीपी अनुरोध का हेडर.navigator.languages
JavaScript का गेट्टर.
ब्राउज़र, भाषा के लिए बातचीत की ज़िम्मेदारी लेगा, ताकि साइटों को उपयोगकर्ता की पसंदीदा भाषा भेजी जा सके. ऐसा करने के लिए, साइटों को रिस्पॉन्स हेडर में दो हेडर जोड़ने होंगे: Variants
(नया हेडर, साइटों पर इस्तेमाल की जा सकने वाली भाषाओं के बारे में बताता है) Accept-Language
और Content-Language
. ज़्यादा जानकारी के लिए, नीचे दिया गया उदाहरण देखें.
फ़िलहाल, कम कीमत वाले Accept-Language
प्लान में iOS और वेबव्यू शामिल नहीं हैं. हालांकि, उन प्लैटफ़ॉर्म पर उपयोगकर्ताओं को Accept-Language
की पूरी सूची दिखती रहेगी.
इन प्लैटफ़ॉर्म के लिए, यह सुविधा बाद में उपलब्ध कराई जाएगी.
स्वीकार की जाने वाली भाषाओं की संख्या को कम करने की सुविधा के लिए ऑरिजिन ट्रायल
ऑरिजिन ट्रायल के लिए, हिस्सा लेने वाली साइट को अपने जवाब में एक टोकन देना होगा. इससे ब्राउज़र को, बताए गए ट्रायल को चालू करने के लिए कहा जाता है. हालांकि, इसका मतलब यह है कि जब ब्राउज़र, साइट से कोई अनुरोध करता है, तो उसे यह पता नहीं चलता कि साइट, ऑरिजिन ट्रायल में हिस्सा ले रही है या नहीं. इसका मतलब है कि किसी सेशन में, शुरुआती अनुरोध में कम किया गया Accept-Language header
नहीं भेजा जाएगा.
उस पेज के सब-रिसॉर्स के लिए किए गए अनुरोधों को, एक जैसे ऑरिजिन और क्रॉस-ऑरिजिन, दोनों के लिए कम किया गया Accept-Language
हेडर मिलेगा. एक ही ऑरिजिन के बाद के नेविगेशन को भी छोटा किया गया Accept-Language
हेडर मिलेगा. क्रॉस-ऑरिजिन नेविगेशन, पूरा हेडर भेजने के लिए वापस आ जाएंगे. हालांकि, पेज में मौजूद क्रॉस-ऑरिजिन अनुरोध (जैसे, तीसरे पक्ष के iframe अनुरोध), अब भी छोटा Accept-Language
हेडर भेजेंगे. ऐसा तब होगा, जब टॉप-लेवल फ़्रेम अनुरोध में मान्य ऑरिजिन ट्रायल टोकन होगा.
यह उपयोगकर्ता-एजेंट हेडर में दी गई जानकारी को कम करने के ऑरिजिन ट्रायल जैसा ही है. अगर आपको Chromium में इस सुविधा को लागू करने के बारे में ज़्यादा जानना है, तो Accept-Language एचटीटीपी हेडर को कम करने की सुविधा को लागू करना लेख पढ़ें.
स्वीकार की जाने वाली भाषाओं की संख्या को कम करने की सुविधा के ऑरिजिन ट्रायल में हिस्सा लेना
ज़्यादा जानकारी के लिए, Chrome के ऑरिजिन ट्रायल का इस्तेमाल शुरू करना लेख पढ़ें. हालांकि, ज़रूरी चरण यहां दिए गए हैं.
चरण 1
ऑरिजिन ट्रायल के लिए रजिस्टर करने और अपने डोमेन के लिए टोकन पाने के लिए, Accept-Language को कम करने के लिए ट्रायल पेज पर जाएं.
दूसरा चरण
अपने एचटीटीपी रिस्पॉन्स हेडर अपडेट करें:
- अपने एचटीटीपी रिस्पॉन्स हेडर में
Origin-Trial: <ORIGIN TRIAL TOKEN>
जोड़ें. यहां <ORIGIN TRIAL TOKEN
> में वह टोकन होता है जो आपको ऑरिजिन ट्रायल के लिए रजिस्टर करते समय मिला था. - ऑडियंस के लिए इस्तेमाल की जाने वाली भाषा(भाषाओं) के बारे में बताने के लिए, अपने एचटीटीपी रिस्पॉन्स हेडर में
Content-Language
जोड़ें. - साइटों पर काम करने वाली भाषाओं के बारे में बताने के लिए, अपने एचटीटीपी रिस्पॉन्स हेडर में
Variants
जोड़ें. - [ज़रूरी नहीं] कॉन्टेंट के लिए बातचीत करने के लिए कैश कुंजी बनाने के लिए, अपने एचटीटीपी रिस्पॉन्स में
Vary: Accept-Language
जोड़ें. - इन हेडर को सेट करने पर, सिर्फ़ दिए गए ऑरिजिन के लिए ब्राउज़र की भाषा के लिए बातचीत शुरू होगी. यह बातचीत, शुरुआती अनुरोध के लिए फिर से शुरू हो सकती है. उपयोगकर्ताओं को सही भाषा में कॉन्टेंट दिखाने के लिए, आपको उन साइटों को भी अपडेट करना होगा जो उपयोगकर्ता के Accept-Language हेडर के आधार पर कॉन्टेंट भेजती हैं. इसके लिए, नीचे दिया गया उदाहरण देखें.
तीसरा चरण
अपनी वेबसाइट को Chrome M109 बीटा (या उसके बाद के वर्शन) में लोड करें और कम की गई Accept-Language स्ट्रिंग पाना शुरू करें.
स्वीकार की जाने वाली भाषाओं की संख्या को कम करने के लिए, GitHub की रिपॉज़िटरी पर कोई समस्या या सुझाव सबमिट करें.
डेमो
कई भाषाओं में उपलब्ध ऐसी साइट का डेमो देखने के लिए जिसने सोर्स कोड के साथ-साथ ऑरिजिन ट्रायल में ऑप्ट-इन किया है, https://reduce-accept-language.glitch.me/ पर जाएं.
ऑरिजिन ट्रायल में ऑप्ट-इन और ऑप्ट-आउट करने के साथ-साथ सोर्स कोड के बारे में जानने के लिए, https://reduce-accept-language-ot.glitch.me/ पर जाएं.
उदाहरण के लिए, example.com
में ja
(जैपनीज़) और en
(अंग्रेज़ी) का इस्तेमाल किया जा सकता है. अनुरोध इनमें से कोई हो सकता है:
GET / HTTP/1.1
Host: example.com
Accept-Language: en
साइट को पता है कि उपयोगकर्ता को अंग्रेज़ी में कॉन्टेंट पसंद है. यह जानकारी, उपयोगकर्ता की स्वीकार की गई भाषा के आधार पर मिलती है. रिस्पॉन्स हेडर में ये शामिल हो सकते हैं:
HTTP/1.1 200 OK
Content-Language: en
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
अगर उपयोगकर्ता को जैपनीज़ भाषा में कॉन्टेंट चाहिए, तो अनुरोध इस तरह का होगा:
GET / HTTP/1.1
Host: example.com
Accept-Language: ja
इस मामले में, साइट जापानी कॉन्टेंट के लिए हेडर के साथ जवाब देती है:
HTTP/1.1 200 OK
Content-Language: ja
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
हो सकता है कि सर्वर-साइड पर, साइट किसी खास भाषा के लिए सहायता खोज रही हो. हालांकि, अगर कोई सहायता नहीं मिलती है, तो वह डिफ़ॉल्ट भाषा पर स्विच कर सकती है:
if(accept_language == 'ja') {
res.response('ja_page')
}
else {
res.response('en_page')
}
ऊपर दिए गए उदाहरण में, example.com
, Accept-Language
वैल्यू के आधार पर en
या ja
में से कोई एक वैल्यू दिखाता है. अगर कोई वैल्यू मैच नहीं होती है, तो डिफ़ॉल्ट रूप से en
दिखता है. इस मामले में, साइट Accept-Language
वैल्यू के आधार पर, उस भाषा के पेजों पर रीडायरेक्ट भी कर सकती है, जो /en
या /ja
है. लागू करने के दस्तावेज़ में, रीडायरेक्ट से जुड़े उदाहरण देखें.
तीसरे पक्ष के ऑरिजिन ट्रायल से जुड़ी सहायता
फ़िलहाल, हम आपके डोमेन को मुफ़्त में आज़माने के लिए तीसरे पक्ष के तौर पर रजिस्टर नहीं कर सकते.
अगर आपके पास ऐसी सेवा है जिसे सभी ऑरिजिन (जैसे, विज्ञापन दिखाने या आंकड़ों की सुविधा) के लिए सब-रिसॉर्स के तौर पर लागू किया गया है, तो आपको छोटा Accept-Language
हेडर सिर्फ़ तब मिलेगा, जब टॉप-लेवल साइट ऑरिजिन के ट्रायल में हिस्सा ले रही हो.
पुष्टि करना कि ऑरिजिन ट्रायल काम कर रहा है
Chrome के ऑरिजिन ट्रायल से जुड़ी समस्या हल करने के लिए बनी गाइड में, एक पूरी चेकलिस्ट दी गई है. इससे यह पक्का किया जा सकता है कि आपका टोकन सही तरीके से कॉन्फ़िगर किया गया है.
एक से ज़्यादा भाषाओं और उनकी प्राथमिकता को कॉन्फ़िगर करने के लिए, chrome://settings/languages
या सेटिंग → भाषाएं पर जाएं. ऐसी भाषा चुनें जिस पर आपकी साइट काम नहीं करती. साथ ही, उसे सूची में सबसे ऊपर रखें, ताकि फिर से बातचीत शुरू करने की प्रोसेस शुरू हो सके.
शुरुआती रिस्पॉन्स के हेडर में, ऑरिजिन ट्रायल टोकन दिखना चाहिए. जैसे:

स्वीकार की जाने वाली भाषाओं की संख्या कम करने के बाद, अनुरोध के हेडर इस तरह दिखते हैं:

ऑरिजिन ट्रायल में हिस्सा लेना बंद करना
मुफ़्त में आज़माने की अवधि के दौरान, किसी भी समय इस प्रोग्राम से बाहर निकला जा सकता है. साथ ही, उपयोगकर्ता के Accept-Language एट्रिब्यूट की पूरी सूची भी देखी जा सकती है. इस मिशन से ऑप्ट आउट करने के लिए:
- अपने एचटीटीपी रिस्पॉन्स से, स्वीकार की जाने वाली भाषाओं की संख्या को कम करने की सुविधा के ट्रायल के लिए
Origin-Trial
हेडर हटाएं. - [ज़रूरी नहीं] अगर आपको यह हेडर नहीं भेजना है, तो अपने एचटीटीपी रिस्पॉन्स में ऑरिजिन ट्रायल के लिए ऑप्ट-इन करने के लिए जोड़ा गया
Variants
हेडर हटाएं. इसके लिए, खाली वैल्यू के साथVariants
का इस्तेमाल भी किया जा सकता है. - [ज़रूरी नहीं] अगर आपको यह हेडर नहीं भेजना है, तो अपने एचटीटीपी रिस्पॉन्स में ऑरिजिन ट्रायल के लिए ऑप्ट-इन करने के लिए जोड़ा गया
Content-Language
हेडर हटाएं.
ऑरिजिन ट्रायल की अवधि
स्वीकार की जाने वाली भाषाओं की संख्या को कम करने के लिए, ऑरिजिन ट्रायल कम से कम छह महीने तक चलेगा. यह Chrome के छह माइलस्टोन के बराबर है. ऑरिजिन ट्रायल, M109 में दिखेगा और M114 में खत्म होगा. इसका मतलब है कि Chrome का वह आखिरी वर्शन जिसमें ट्रायल उपलब्ध होगा. इसके बाद, Chrome, स्वीकार की जाने वाली भाषाओं की संख्या को कम करके, धीरे-धीरे भेजने की प्रोसेस शुरू करेगा. इसके लिए, वह ऑरिजिन ट्रायल से मिले सुझावों का आकलन करेगा: पहले Accept-Language एचटीटीपी हेडर को कम किया जाएगा और फिर JS इंटरफ़ेस को कम किया जाएगा. अगर किसी साइट को टेस्ट करने के लिए ज़्यादा समय चाहिए, तो वह बंद होने से पहले के ऑरिजिन ट्रायल में ऑप्ट-इन कर सकती है. इससे, उसे कम से कम छह महीने तक पूरी Accept-Language स्ट्रिंग को ऐक्सेस करने की अनुमति मिलेगी. इस सुविधा के बंद होने से जुड़े ट्रायल के बारे में ज़्यादा जानकारी, इसके तैयार होने पर पब्लिश की जाएगी.
सुझाव, शिकायत या राय दें
स्वीकार की जाने वाली भाषाओं की संख्या को कम करने के लिए, GitHub की रिपॉज़िटरी पर कोई समस्या या सुझाव सबमिट करें.