Chrome में निजी प्रीफ़ेच प्रॉक्सी

Katie Hempenius
Katie Hempenius
Kenji Baheux
Kenji Baheux
Michael Buettner
Michael Buettner

क्रॉस-साइट प्रीफ़ेच करके, सबसे बड़े कॉन्टेंटफ़ुल पेंट (एलसीपी) की रफ़्तार बढ़ाई जा रही है.

Android के लिए Chrome 103 से शुरू करते हुए, Chrome धीरे-धीरे एक निजी प्रीफ़ेच प्रॉक्सी सुविधा को रोल आउट करेगा, ताकि Google Search और हिस्सा लेने वाली दूसरी वेबसाइटों के नेविगेशन की रफ़्तार को 30% तक बढ़ाया जा सके. यह निजी प्रीफ़ेच प्रॉक्सी सुविधा जब तक उपयोगकर्ता नेविगेट नहीं करती, तब तक डेस्टिनेशन वेबसाइट को उपयोगकर्ता की जानकारी दिखाए बिना क्रॉस-ऑरिजिन सामग्री को प्रीफ़ेच करने की अनुमति देती है.

यह सुविधा कैसे काम करती है, यह आपकी साइट के सबसे बड़े कॉन्टेंटफ़ुल पेंट (एलसीपी) को बेहतर बनाने में कैसे मदद कर सकती है या क्रॉस-साइट नेविगेशन को तेज़ करके, अपने लक्ष्यों को पूरा करने में रेफ़रर वेबसाइटें कैसे मदद कर सकती हैं, इस बारे में आगे पढ़ें.

निजी प्रीफ़ेच प्रॉक्सी कैसे काम करता है

सुरक्षित बातचीत का चैनल

यह सुविधा, Chrome और प्रीफ़ेच किए जाने वाले कॉन्टेंट को होस्ट करने वाले सर्वर के बीच एक सुरक्षित कम्यूनिकेशन चैनल बनाने के लिए, CONNECT प्रॉक्सी का इस्तेमाल करती है. यह सुरक्षित कम्यूनिकेशन चैनल, प्रॉक्सी को किसी भी डेटा ट्रांसफ़र की जांच करने से रोकता है. विशेष रूप से, हालांकि निजी प्रीफ़ेच प्रॉक्सी एक सुरक्षित संचार चैनल स्थापित करने के लिए आवश्यक रूप से होस्ट नाम को देखता है, लेकिन यह न तो पूरे URL को देखता है और न ही संसाधन को.

ऐनिमेशन की मदद से, प्रॉक्सी के ज़रिए डेटा ट्रांसफ़र किया जा रहा है.
CONNECT प्रॉक्सी के ज़रिए वेबसाइटों को प्रीफ़ेच करने से, उपयोगकर्ता की जानकारी लीक होने से बचती है.

इसके अलावा, सुरक्षित कम्यूनिकेशन चैनल पूरी तरह सुरक्षित (E2EE) होता है. इसलिए, मध्यस्थ न तो होस्ट के नाम देख सकते हैं और न ही प्रीफ़ेच की गई साइटों के कॉन्टेंट को देख सकते हैं. आखिर में, प्रॉक्सी सर्वर को उपयोगकर्ता का आईपी पता देखने से रोकता है.

उपयोगकर्ता की पहचान से बचना

नेटवर्क से जुड़ी पहले की जानकारी के अलावा, हमें सर्वर को प्रीफ़ेच के समय उपयोगकर्ता की पहचान करने से रोकना होगा. इसके लिए, सर्वर के डिवाइस पर पहले से सेव की गई जानकारी का इस्तेमाल किया जाता है. इसके लिए, Chrome अभी उन वेबसाइटों के लिए निजी प्रीफ़ेच प्रॉक्सी के इस्तेमाल को प्रतिबंधित करता है जिनके लिए उपयोगकर्ता की कोई कुकी या कोई दूसरी स्थानीय स्थिति नहीं है. निजी प्रीफ़ेच प्रॉक्सी से किए गए प्रीफ़ेच अनुरोधों की पाबंदियां यहां दी गई हैं:

  • कुकी: प्रीफ़ेच अनुरोधों को कुकी ले जाने की अनुमति नहीं होती.
    • अगर किसी संसाधन के लिए कोई कुकी मौजूद है, तो Chrome क्रेडेंशियल के बिना फ़ेच करेगा. हालांकि, वह रिस्पॉन्स का इस्तेमाल नहीं करेगा (बाद में कैश मेमोरी में सेव करना सेक्शन देखें).
    • हालांकि, प्रीफ़ेच करने के अनुरोध के जवाबों में कुकी शामिल हो सकती हैं. हालांकि, ये कुकी सिर्फ़ तब सेव की जाएंगी, जब उपयोगकर्ता प्रीफ़ेच किए गए पेज पर जाएगा.
  • फ़िंगरप्रिंट की सुविधा: फ़िंगरप्रिंट की सुविधा के लिए इस्तेमाल की जा सकने वाली दूसरी जगहों में भी बदलाव किया गया है. उदाहरण के लिए, प्रीफ़ेच प्रॉक्सी से भेजे गए User-Agent हेडर में सिर्फ़ सीमित जानकारी होती है.

आने वाले समय में, हम आशा करते हैं कि निजता से जुड़ी सभी विशेषताओं को बनाए रखते हुए, कुकी या स्थानीय स्थिति से जुड़े लिंक के लिए निजी प्रीफ़ेच प्रॉक्सी को बड़ा किया जाएगा. ज़्यादा जानकारी के लिए, आगे क्या करना है सेक्शन देखें.

कैश मेमोरी में सेव करना

Chrome, कैश में मौजूद संसाधनों को प्रीफ़ेच करेगा, भले ही वे पहले से ही कैश मेमोरी में हों. हालांकि, उनमें ETag या If-Modified-Since जैसे शर्तें पूरी करने वाले हेडर नहीं होंगे. इनमें सर्वर के सेट की गई वैल्यू शामिल होती हैं, जिनका इस्तेमाल कुकी के बिना भी ट्रैक करने के लिए किया जा सकता है. यह प्रीफ़ेच इसलिए किया जाता है, ताकि किसी क्लाइंट की कैश मेमोरी को प्रीफ़ेच की गई वेबसाइट में लीक होने से रोका जा सके. इसके अलावा, Chrome सिर्फ़ प्रीफ़ेच किए गए संसाधन को कैश मेमोरी में तब ही सेव करेगा, जब उपयोगकर्ता प्रीफ़ेच की गई वेबसाइट पर जाने का फ़ैसला करेगा.

निजी प्रीफ़ेच प्रॉक्सी का इस्तेमाल शुरू करना

वेबसाइट के मालिकों के लिए

उन लिंक पर निजी प्रीफ़ेच प्रॉक्सी का फ़ायदा लेने के लिए वेबसाइट के मालिकों को कुछ करने की ज़रूरत नहीं है जिनके लिए उपयोगकर्ता की कोई कुकी या स्थानीय स्थिति मौजूद नहीं है. हमारे प्रयोगों से, यह ज़्यादातर वेबसाइटों के लिए एक अच्छा अवसर है. इसके अलावा, पहली बार आने वाले या कभी-कभी आने वाले लोगों को बहुत तेज़ लोडिंग अनुभव से आकर्षित करना हमेशा अच्छा होता है. पिछले एक्सपेरिमेंट के मुताबिक, हमने प्रीफ़ेच किए गए नेविगेशन पर 20% से 30% के बीच सबसे बड़े एलिमेंट को रेंडर करने में लगने वाला सबसे तेज़ पेंट देखा है.

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

हालांकि, प्रीफ़ेच के अनुरोध बिना क्रेडेंशियल के बने रहेंगे. हालांकि, जब उपयोगकर्ता किसी वेब पेज पर जाएगा, तब उसे कुकी और दूसरी स्थानीय स्थिति का ऐक्सेस मिल जाएगा. डेवलपर इसका फ़ायदा लेकर, कुकी या स्थानीय स्थिति के आधार पर ऐप्लिकेशन को उपयोगकर्ता के मनमुताबिक बनाने की प्रोसेस और बदलावों को फिर से जोड़ सकते हैं. या शायद, डेवलपर कुछ संसाधनों को प्रीफ़ेच करने और कुकी के बिना भी इस्तेमाल करने के बारे में बताने में दिलचस्पी रखते हों. इसका मतलब है कि ऐसे संसाधन जो किसी कुकी पर निर्भर नहीं होते. ज़्यादा जानने और हमारे प्लान के बारे में जानकारी देने के लिए, कृपया आगे क्या करना है सेक्शन पर नज़र डालें.

जगह के हिसाब से कॉन्टेंट या सेवाएं

अगर आपकी वेबसाइट, उपयोगकर्ता के आईपी पते के आधार पर सभी मार्केट में अलग-अलग तरह का व्यवहार (उदाहरण के लिए, अलग-अलग कॉन्टेंट या चुनिंदा ऐक्सेस) करती है, तो हो सकता है कि आपको निजी प्रीफ़ेच प्रॉक्सी के प्रीफ़ेच अनुरोधों को मैनेज करने का तरीका जानना हो. यह जानना ज़रूरी है कि निजी प्रीफ़ेच प्रॉक्सी दुनिया भर के कई सर्वर से चलता है और प्रॉक्सी का आईपी उस देश को भौगोलिक रूप से तय करेगा जहां से उपयोगकर्ता ने प्रीफ़ेच शुरू किया था.

इसलिए, इसे ध्यान में रखते हुए, हमारा सुझाव है कि:

  1. Sec-Purpose: Prefetch; anonymous-client-ip एचटीटीपी हेडर की मौजूदगी के आधार पर, Private प्रीफ़ेच प्रॉक्सी के प्रीफ़ेच अनुरोधों की पहचान करें.
  2. उस निजी प्रीफ़ेच प्रॉक्सी का भौगोलिक स्थान देखें जिसने उसके आईपी पते से अनुरोध जारी किया था. रोल आउट किए गए भौगोलिक क्षेत्रों और उनसे जुड़े आईपी पतों की अप-टू-डेट सूची के लिए, यह संसाधन देखें.
  3. इस भौगोलिक स्थान से जुड़े बाज़ार के हिसाब से संसाधनों को उपलब्ध कराएं.

ट्रैफिक कंट्रोल

पिछले एक्सपेरिमेंट से हमें पता चला है कि इस सुविधा की मदद से, मुख्य संसाधनों (जैसे, एचटीएमएल दस्तावेज़ों) के लिए आम तौर पर दो प्रतिशत से भी कम अनुरोध मिलते हैं. हालांकि, अगर आप सावधानी बरतते हैं, तो आप 'ट्रैफ़िक सलाह' के फ़्रैक्शन फ़ील्ड का इस्तेमाल करके यह तय कर सकते हैं कि निजी प्रीफ़ेच प्रॉक्सी को कितना ट्रैफ़िक मिलेगा. किसी /.well-known/traffic-advice फ़ाइल में नीचे दिए गए JSON को जोड़कर, 0.3 (यानी 30%) जैसे छोटे फ़्रैक्शन से शुरुआत की जा सकती है और धीरे-धीरे इसे 1.0 (यानी 100%) तक बढ़ाया जा सकता है. इस फ़ाइल को application/trafficadvice+json MIME टाइप में इस्तेमाल किया जाना चाहिए:

[{
  "user_agent": "prefetch-proxy",
  "fraction": 0.3
}]

fraction फ़ील्ड 0.0 (बिलकुल प्रीफ़ेच नहीं) और 1.0 (100% प्रीफ़ेच अनुरोध पूरा होने के बीच) के बीच का फ़्लोट होता है.

नीचे दिए गए कॉन्फ़िगरेशन की मदद से, इसे पूरी तरह से बंद भी किया जा सकता है:

[{
  "user_agent": "prefetch-proxy",
  "disallow": true
}]

/.well-known/traffic-advice फ़ाइल को क्लाइंट के बजाय, प्रॉक्सी के ज़रिए फ़ेच किया जाता है. साथ ही, इसे प्रॉक्सी की कैश मेमोरी में सेव किए गए, सामान्य एचटीटीपी कैश सिमेंटिक्स के हिसाब से कैश मेमोरी में सेव किया जाता है. ज़्यादा सुविधा पाने के लिए—उदाहरण के लिए, अचानक बहुत ज़्यादा ऐक्सेस होना—आप 503 स्टेटस कोड वाले प्रीफ़ेच अनुरोधों (Sec-Purpose: prefetch;anonymous-client-ip) को कुछ समय के लिए अस्वीकार कर सकते हैं. साथ ही, जवाब पर Cache-Control: no-store हेडर सेट करके ऐसा कर सकते हैं. आपके पास Retry-After हेडर जोड़कर, Chrome को यह बताने का विकल्प भी है कि प्रीफ़ेच के अनुरोधों के लिए फिर से कोशिश करने से पहले, हमें कितनी देर इंतज़ार करना होगा.

रेफ़रर वेबसाइट के मालिकों के लिए

अगर आपके पास ऐसी वेबसाइट है जिस पर दूसरी वेबसाइटों के बहुत सारे लिंक मौजूद हैं, तो हो सकता है कि क्रॉस-ऑरिजिन नेविगेशन की प्रोसेस को तेज़ करने के लिए, आपको निजी प्रीफ़ेच प्रॉक्सी की सुविधा का इस्तेमाल करना पड़े. आपको Chrome के लिए अपने पेजों में अनुमान लगाने के नियम जोड़ने होंगे. इससे, यह पता चलेगा कि निजी प्रीफ़ेच प्रॉक्सी के ज़रिए कौनसा पेज प्रीफ़ेच किया जाना चाहिए. यहां एक सामान्य उदाहरण दिया गया है:

<script type="speculationrules">
{
  "prefetch": [
    "source": "list",
    "urls": ["https://example.com/index.html"],
    "requires": ["anonymous-client-ip-when-cross-origin"]
  ]
}
</script>

आगे क्या करना है?

यह लॉन्च सिर्फ़ पहला कदम है. समुदाय की दिलचस्पी और सुझाव के आधार पर, हम इस सुविधा का दायरा बढ़ाने और इसे बेहतर बनाने की कोशिश कर रहे हैं. उदाहरण के लिए, हमें यह सुझाव अच्छा लगेगा कि कुकी और स्थानीय स्थिति वाले लिंक को विस्तार से कैसे बढ़ाया जाए, ताकि डेवलपर की मुश्किलों को कम किया जा सके या इस सुविधा को रेफ़र करने वाली वेबसाइटों के लिए ज़्यादा उपयोगी बनाया जा सके.

और पढ़ें