स्वीकार-भाषा कम करने की सुविधा के लिए, ऑरिजिन ट्रायल में हिस्सा लें

Accept-Language Reduction, पैसिव फ़िंगरप्रिंटिंग के प्लैटफ़ॉर्म को कम करने के लिए एक कोशिश है. इसके लिए, 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 में इसे दिखाया जाता है. फ़िलहाल, इसमें उपयोगकर्ता की सभी पसंदीदा भाषाएं शामिल हैं.

Accept-Language एट्रिब्यूट को हटाया क्यों जा रहा है?

Accept-Language Reduction, 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 को कम करने के लिए ऑरिजिन ट्रायल

ऑरिजिन ट्रायल के लिए, हिस्सा लेने वाली साइट को अपने जवाब में एक टोकन देना होता है. इससे ब्राउज़र को, बताए गए ट्रायल को चालू करने के लिए कहा जाता है. हालांकि, इसका मतलब यह है कि साइट के लिए ब्राउज़र के शुरुआती अनुरोध पर, यह पता नहीं चलता कि साइट किसी ऑरिजिन ट्रायल में हिस्सा ले रही है या नहीं. इसका मतलब है कि किसी सेशन में, शुरुआती अनुरोध में कम किया गया Accept-Language header नहीं भेजा जाएगा. उस पेज के सब-रिसॉर्स के लिए किए गए अनुरोधों को, एक जैसे ऑरिजिन और क्रॉस-ऑरिजिन, दोनों के लिए कम किया गया Accept-Language हेडर मिलेगा. एक ही ऑरिजिन के बाद के नेविगेशन को भी छोटा किया गया Accept-Language हेडर मिलेगा. क्रॉस-ऑरिजिन नेविगेशन, पूरा हेडर भेजने के लिए वापस आ जाएंगे. हालांकि, अगर टॉप-लेवल फ़्रेम के अनुरोध में मान्य ऑरिजिन ट्रायल टोकन है, तो पेज में मौजूद क्रॉस-ऑरिजिन अनुरोध (जैसे, तीसरे पक्ष के iframe अनुरोध) अब भी छोटा Accept-Language हेडर भेजेंगे.

यह उपयोगकर्ता-एजेंट हेडर में दी गई जानकारी को कम करने के ऑरिजिन ट्रायल जैसा ही है. अगर आपको Chromium में इस सुविधा को लागू करने के बारे में ज़्यादा जानना है, तो Accept-Language एचटीटीपी हेडर को कम करने की सुविधा को लागू करना लेख पढ़ें.

Accept-Language Reduction ऑरिजिन ट्रायल में हिस्सा लेना

ज़्यादा जानकारी के लिए, Chrome के ऑरिजिन ट्रायल का इस्तेमाल शुरू करना लेख पढ़ें. हालांकि, ज़रूरी चरण यहां दिए गए हैं.

चरण 1

ऑरिजिन ट्रायल के लिए रजिस्टर करने और अपने डोमेन के लिए टोकन पाने के लिए, Accept-Language को कम करने के लिए ट्रायल पेज पर जाएं.

दूसरा चरण

अपने एचटीटीपी रिस्पॉन्स हेडर अपडेट करें:

  1. अपने एचटीटीपी रिस्पॉन्स हेडर में Origin-Trial: <ORIGIN TRIAL TOKEN> जोड़ें. यहां <ORIGIN TRIAL TOKEN> में वह टोकन होता है जो आपको ऑरिजिन ट्रायल के लिए रजिस्टर करते समय मिला था.
  2. ऑडियंस के लिए इस्तेमाल की जाने वाली भाषा(भाषाओं) के बारे में बताने के लिए, अपने एचटीटीपी रिस्पॉन्स हेडर में Content-Language जोड़ें.
  3. साइटों पर काम करने वाली भाषाओं के बारे में बताने के लिए, अपने एचटीटीपी रिस्पॉन्स हेडर में Variants जोड़ें.
  4. [ज़रूरी नहीं] कॉन्टेंट के लिए बातचीत करने के लिए कैश कुंजी बनाने के लिए, अपने एचटीटीपी रिस्पॉन्स में Vary: Accept-Language जोड़ें.
  5. इन हेडर को सेट करने पर, सिर्फ़ दिए गए ऑरिजिन के लिए ब्राउज़र की भाषा से जुड़ी बातचीत (शुरुआती अनुरोध के लिए संभावित रीस्टार्ट) ट्रिगर होगी. उपयोगकर्ताओं को सही भाषा में कॉन्टेंट दिखाने के लिए, आपको उन साइटों को भी अपडेट करना होगा जो उपयोगकर्ता के Accept-Language हेडर के आधार पर कॉन्टेंट भेजती हैं. इसके लिए, नीचे दिया गया उदाहरण देखें.

तीसरा चरण

अपनी वेबसाइट को Chrome M109 बीटा (या उसके बाद के वर्शन) में लोड करें और कम की गई Accept-Language स्ट्रिंग पाना शुरू करें.

Accept-Language Reduction 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 को छोटा करके, अनुरोध हेडर का स्क्रीनशॉट.

इसके बाद के अनुरोध हेडर, Accept-Language एट्रिब्यूट के कम किए गए वैल्यू के साथ इस तरह दिखते हैं:

शुरुआती रिस्पॉन्स के हेडर, जिनमें ऑरिजिन ट्रायल टोकन शामिल है.

ऑरिजिन ट्रायल में हिस्सा लेना बंद करना

मुफ़्त में आज़माने की अवधि के दौरान, किसी भी समय इस प्रोग्राम से बाहर निकला जा सकता है. साथ ही, उपयोगकर्ता के Accept-Language एट्रिब्यूट की पूरी सूची भी देखी जा सकती है. इस सुविधा से ऑप्ट आउट करने के लिए:

  1. अपने एचटीटीपी रिस्पॉन्स से, Accept-Language को कम करने के ट्रायल के लिए Origin-Trial हेडर हटाएं.
  2. [ज़रूरी नहीं] अगर आपको यह हेडर नहीं भेजना है, तो अपने एचटीटीपी रिस्पॉन्स में ऑरिजिन ट्रायल के लिए ऑप्ट-इन करने के लिए जोड़ा गया Variants हेडर हटाएं. इसके लिए, खाली वैल्यू के साथ Variants का इस्तेमाल भी किया जा सकता है.
  3. [ज़रूरी नहीं] अगर आपको यह हेडर नहीं भेजना है, तो अपने एचटीटीपी रिस्पॉन्स में ऑरिजिन ट्रायल के लिए ऑप्ट-इन करने के लिए जोड़ा गया Content-Language हेडर हटाएं.

ऑरिजिन ट्रायल की अवधि

Accept-Language Reduction का ऑरिजिन ट्रायल कम से कम छह महीने तक चलेगा. यह Chrome के छह माइलस्टोन के हिसाब से है. ऑरिजिन ट्रायल, M109 में दिखेगा और M114 में खत्म होगा. इसका मतलब है कि Chrome का वह आखिरी वर्शन जिसमें ट्रायल उपलब्ध होगा. इसके बाद, Chrome, कम की गई Accept-Language स्ट्रिंग को धीरे-धीरे भेजने से पहले, ऑरिजिन ट्रायल से मिले सुझावों का आकलन करेगा: पहले Accept-Language एचटीटीपी हेडर को कम करें और फिर JS इंटरफ़ेस को कम करें. अगर किसी साइट को जांच के लिए ज़्यादा समय चाहिए, तो वह बाद में होने वाले, 'इस्तेमाल में नहीं है' के स्टेटस वाले ऑरिजिन ट्रायल में ऑप्ट-इन कर सकती है. इससे, वह कम से कम छह महीने तक पूरी Accept-Language स्ट्रिंग को ऐक्सेस कर पाएगी. इस सुविधा के बंद होने से जुड़े ट्रायल के बारे में ज़्यादा जानकारी, इसके तैयार होने पर पब्लिश की जाएगी.

सुझाव, शिकायत या राय दें

Accept-Language Reduction GitHub रिपॉज़िटरी पर, अपनी समस्याओं या सुझावों को सबमिट करें.