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

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

क्रॉस-साइट प्रीफ़ेचिंग की मदद से, सबसे बड़े एलिमेंट को रेंडर करने में लगने वाले समय (एलसीपी) की रफ़्तार बढ़ाना.

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

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

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

सिक्योर कम्यूनिकेशन चैनल

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

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

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

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

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

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

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

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

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

निजी प्रीफ़ेच प्रॉक्सी के साथ शुरू करना

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

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

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

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

जगह के आधार पर कॉन्टेंट या सेवाएं

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

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

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

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

पिछले एक्सपेरिमेंट से हमें पता चला है कि इस सुविधा की वजह से, मुख्य संसाधनों (जैसे कि एचटीएमएल दस्तावेज़) के लिए आम तौर पर 2% से कम अतिरिक्त अनुरोध मिलते हैं. हालांकि, अगर आप सावधान हैं, तो ट्रैफ़िक से जुड़ी सलाह वाले फ़्रैक्शन फ़ील्ड का इस्तेमाल करके, यह कंट्रोल किया जा सकता है कि Private प्रीफ़ेच प्रॉक्सी को कितना ट्रैफ़िक मिलेगा. छोटे हिस्से से शुरुआत की जा सकती है, जैसे कि 0.3 (यानी 30%). इस फ़ाइल को /.well-known/traffic-advice फ़ाइल में जोड़कर, धीरे-धीरे 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 को यह बताया जा सकता है कि प्रीफ़ेच अनुरोधों की फिर से कोशिश करने से पहले, आपको कितना इंतज़ार करना होगा.

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

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

<script type="speculationrules">
{
  "prefetch": [
    "source": "list",
    "urls": ["https://example.com/index.html"],
    "requires": ["anonymous-client-ip-when-cross-origin"]
  ]
}
</script>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

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

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

और पढ़ें