एसएक्सजी, डिलीवरी का एक तरीका है. इसकी मदद से, किसी संसाधन के ऑरिजिन की अलग-अलग पुष्टि की जा सकती है, फिर चाहे वह डेटा कैसे डिलीवर किया गया हो.
साइन किए हुए एक्सचेंज (एसएक्सजी) एक ऐसी प्रक्रिया है जिसकी मदद से, संसाधन के ऑरिजिन की पुष्टि की जा सकती है, चाहे वह संसाधन कैसे डिलीवर किया गया हो. एसएक्सजी को लागू करने से, निजता को सुरक्षित रखने वाले क्रॉस-ऑरिजिन प्रीफ़ेच को चालू करके, सबसे बड़े कॉन्टेंटफ़ुल पेंट (एलसीपी) को बेहतर बनाया जा सकता है. इसके अलावा, इस डिकोडिंग को इस्तेमाल करने के कई तरीके हैं. जैसे, ऑफ़लाइन इंटरनेट और तीसरे पक्ष की कैश मेमोरी से विज्ञापन दिखाना.
इस लेख में, एसएक्सजी के बारे में खास जानकारी दी गई है: एसएक्सजी के काम करने का तरीका, इस्तेमाल के उदाहरण, और टूलिंग.
वेबसाइट का अलग-अलग ब्राउज़र पर चलना
एसएक्सजी को Chromium का इस्तेमाल करने वाले ब्राउज़र पर काम करता है. इन ब्राउज़र के शुरुआती वर्शन Chrome 73, Edge 79, और Opera 64 हैं.
खास जानकारी
अपने मुख्य इस्तेमाल के तौर पर, एसएक्सजी, डेटा को प्रीफ़ेच करने और उस कॉन्टेंट को दिखाने के लिए कैश मेमोरी का इस्तेमाल करता है जिसे ऑरिजिन ने क्रिप्टोग्राफ़िक तरीके से साइन किया है. इससे रेफ़रर साइटों से क्रॉस ऑरिजिन नेविगेशन को तेज़ी से करने में मदद मिलती है. साथ ही, यह भी पक्का होता है कि पेजों में कोई बदलाव नहीं हुआ है और उन्हें अपने ऑरिजिन के लिए सही तरीके से एट्रिब्यूट किया गया है. पहचान ज़ाहिर करने वाली संभावित जानकारी को तब तक छिपा दिया जाता है, जब तक कि उपयोगकर्ता किसी साइट पर नहीं जाता और इस तरह से उपयोगकर्ता की निजता की सुरक्षा नहीं की जाती. Google Search, एसएक्सजी प्रीफ़ेच करने की सुविधाओं का शुरुआती उपभोक्ता है. यह उन साइटों के लिए भी अहम है जिन्हें Google Search से आने वाले ट्रैफ़िक का बड़ा हिस्सा Google Search से मिलता है. उपयोगकर्ताओं को तेज़ी से पेज लोड करने के लिए एसएक्सजी एक अहम टूल है. हमें उम्मीद है कि समय के साथ इसका असर, अन्य रेफ़रर पर भी पड़ेगा.
यह कैसे काम करता है
कोई साइट, अनुरोध/रिस्पॉन्स पेयर ("एचटीटीपी एक्सचेंज") पर इस तरह से हस्ताक्षर करती है. इससे ब्राउज़र, कॉन्टेंट के ऑरिजिन और उसके रखरखाव की पुष्टि कर पाता है. इससे फ़र्क़ नहीं पड़ता कि कॉन्टेंट को कैसे डिस्ट्रिब्यूट किया गया है. इस वजह से, ब्राउज़र, कॉन्टेंट डिलीवर करने वाले सर्वर के यूआरएल के बजाय, पता बार में ऑरिजिन साइट का यूआरएल दिखा सकता है.
अब तक, साइट का सिर्फ़ एक ही तरीका था कि वह अपना कॉन्टेंट डिस्ट्रिब्यूट करने के लिए, तीसरे पक्ष का इस्तेमाल कर सके. हालांकि, एट्रिब्यूशन को बनाए रखने के लिए, साइट अपने एसएसएल सर्टिफ़िकेट को डिस्ट्रिब्यूटर के साथ शेयर कर सकती थी. इसमें सुरक्षा की कमियां हैं. इतना ही नहीं, यह कॉन्टेंट को पोर्टेबल (जिसे कहीं से भी ले जाया जा सकता है) बनाने में बहुत मुश्किल है.
एसएक्सजी फ़ॉर्मैट
एसएक्सजी को बाइनरी कोड में बदली गई फ़ाइल में एन्क्रिप्ट (सुरक्षित) किया जाता है. इसमें दो मुख्य कॉम्पोनेंट होते हैं: एचटीटीपी एक्सचेंज और एक हस्ताक्षर, जो एक्सचेंज को कवर करता है. एचटीटीपी एक्सचेंज में, अनुरोध का यूआरएल, कॉन्टेंट से जुड़ी बातचीत की जानकारी, और एक एचटीटीपी रिस्पॉन्स शामिल होता है.
format version: 1b3 request: method: GET uri: https://example.org/ headers: response: status: 200 headers: Cache-Control: max-age=604800 Digest: mi-sha256-03=kcwVP6aOwYmA/j9JbUU0GbuiZdnjaBVB/1ag6miNUMY= Expires: Mon, 24 Aug 2020 16:08:24 GMT Content-Type: text/html; charset=UTF-8 Content-Encoding: mi-sha256-03 Date: Mon, 17 Aug 2020 16:08:24 GMT Vary: Accept-Encoding signature: label;cert-sha256=<em>ViFgi0WfQ+NotPJf8PBo2T5dEuZ13NdZefPybXq/HhE=</em>; cert-url="https://test.web.app/ViFgi0WfQ-NotPJf8PBo2T5dEuZ13NdZefPybXq_HhE"; date=1597680503;expires=1598285303;integrity="digest/mi-sha256-03";sig=<em>MEUCIQD5VqojZ1ujXXQaBt1CPKgJxuJTvFlIGLgkyNkC6d7LdAIgQUQ8lC4eaoxBjcVNKLrbS9kRMoCHKG67MweqNXy6wJg=</em>; validity-url="https://example.org/webpkg/validity" header integrity: sha256-Gl9bFHnNvHppKsv+bFEZwlYbbJ4vyf4MnaMMvTitTGQ=</p> <p>The exchange has a valid signature. payload [1256 bytes]:</p> <pre class="prettyprint"><code><title>SXG example</title> <meta charset="utf-8"> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <style type="text/css"> body { background-color: #f0f0f2; margin: 0; padding: 0; } </style> </code></pre> <div> <h1>Hello</h1> </div> <p>
हस्ताक्षर में expires
पैरामीटर से, एसएक्सजी के खत्म होने की तारीख का पता चलता है.
एसएक्सजी ज़्यादा से ज़्यादा सात दिनों तक मान्य हो सकता है. साइन किए गए एचटीटीपी एक्सचेंज की खास जानकारी में, हस्ताक्षर हेडर के बारे में ज़्यादा जानकारी पाएं.
सर्वर-साइड को मनमुताबिक बनाने की सुविधा
Vary: Cookie
हेडर वाला एसएक्सजी सिर्फ़ उन उपयोगकर्ताओं को दिखाया जाएगा जिनके पास साइन किए गए अनुरोध वाले यूआरएल के लिए कुकी नहीं हैं. अगर आपकी साइट, लॉग इन किए हुए लोगों को अलग-अलग एचटीएमएल दिखाता है, तो इस सुविधा का इस्तेमाल करके अनुभव में बदलाव किए बिना एसएक्सजी का फ़ायदा लिया जा सकता है. डाइनैमिक एसएक्सजी के साथ सर्वर-साइड पर मनमुताबिक अनुभव पाने के बारे में जानकारी देखें.
वेब पैकेजिंग
एसएक्सजी, वेब पैकेजिंग के प्रपोज़ल फ़ैमिली का हिस्सा है. एसएक्सजी के अलावा, वेब पैकेजिंग स्पेसिफ़िकेशन का दूसरा मुख्य कॉम्पोनेंट वेब बंडल ("बंडल किए गए एचटीटीपी एक्सचेंज") हैं. वेब बंडल, एचटीटीपी संसाधनों और बंडल को समझने के लिए ज़रूरी मेटाडेटा का कलेक्शन होते हैं.
एसएक्सजी और वेब बंडल के बीच के संबंध में भ्रम की स्थिति होती है. एसएक्सजी और वेब बंडल दो अलग-अलग टेक्नोलॉजी हैं, जो एक-दूसरे पर निर्भर नहीं करती हैं—वेब बंडल का इस्तेमाल साइन किए गए और बिना साइन वाले, दोनों तरह के एक्सचेंज के साथ किया जा सकता है. एसएक्सजी और वेब बंडल दोनों का एक बेहतर लक्ष्य एक "वेब पैकेजिंग" फ़ॉर्मैट बनाना है. इसकी मदद से साइटों को ऑफ़लाइन इस्तेमाल के लिए पूरी तरह से शेयर किया जा सकता है.
साइन किए हुए एक्सचेंज की मदद से पेज लोड होने की रफ़्तार बढ़ाना
साइन किए हुए एक्सचेंज की सुविधा को चालू करने से, वेब पेज की परफ़ॉर्मेंस बेहतर होती है. इससे, आपकी साइट की वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी पर असर पड़ता है. यह असर, खास तौर पर सबसे बड़े कॉन्टेंटफ़ुल पेंट (एलसीपी) पर पड़ता है. शुरुआती उपभोक्ता के रूप में, Google Search उपयोगकर्ताओं को खोज नतीजों वाले पेज से लोड किए गए पेजों के लिए तेज़ी से पेज लोड करने का अनुभव देने के लिए, एसएक्सजी का इस्तेमाल करता है.
एसएक्सजी उपलब्ध होने पर, Google Search उन्हें कैश मेमोरी में सेव और क्रॉल करता है. साथ ही, उस एसएक्सजी को प्रीफ़ेच करता है जिस पर उपयोगकर्ता जा सकता है. उदाहरण के लिए, खोज के पहले नतीजे से जुड़ा पेज.
एसएक्सजी, परफ़ॉर्मेंस को बेहतर बनाने वाले अन्य ऑप्टिमाइज़ेशन के साथ बेहतर तरीके से काम करता है. जैसे, सीडीएन का इस्तेमाल और रेंडर को ब्लॉक करने वाले सबरिसॉर्स को कम करना. लागू करने के बाद, एसएक्सजी को प्रीफ़ेच करने से एलसीपी का ज़्यादा से ज़्यादा फ़ायदा पाने के लिए, इन सुझावों को अपनाएं. कई मामलों में, इस तरह के ऑप्टिमाइज़ेशन की वजह से, Google Search से तुरंत पेज लोड हो सकते हैं:
साइन किए हुए एक्सचेंज का असर
पिछले एक्सपेरिमेंट से, हमने एसएक्सजी की सुविधा वाले प्रीफ़ेच से एलसीपी में 300 से 400 मि॰से॰ की कमी देखी है. इससे साइटों को, उपयोगकर्ताओं पर बेहतर पहली इंप्रेशन डालने में मदद मिलती है. साथ ही, कारोबार की मेट्रिक पर भी इसका असर पड़ता है.
साइन किए हुए एक्सचेंज का फ़ायदा कई ग्लोबल ब्रैंड और साइटों को पहले ही मिल चुका है. एक केस स्टडी के ज़रिए जानें कि साइन किए हुए एक्सचेंज को लागू करने से, मुख्य कॉन्टेंट मैनेजमेंट सिस्टम (सीएमएस) RebelMouse को लागू करने में किस तरह मदद मिली है. इससे ग्राहकों की परफ़ॉर्मेंस और कारोबार की मेट्रिक को बेहतर बनाने में मदद मिली है:
- Norcity के एलसीपी में 41%की बढ़ोतरी हुई
- पेपर मैगज़ीन को हर उपयोगकर्ता के सेशन में 27% की बढ़ोतरी देखने को मिली
- MLT ब्लॉग पर, पेज लोड होने के समय में 21%की कमी आई
Cloudflare को पता चला कि एसएक्सजी ने 98% साइटों पर टीटीएफ़बी को बेहतर बनाया. साथ ही, 85% साइटों के लिए एलसीपी को बेहतर बनाया. साथ ही, एसएक्सजी की ज़रूरी शर्तों को पूरा करने वाले पेज लोड में 20% से ज़्यादा का मीडियन सुधार हुआ.
इंडेक्स करना
किसी पेज की एसएक्सजी और नॉन-एसएक्सजी वाली रिपोर्ट, Google Search में अलग-अलग तरीके से रैंक या इंडेक्स नहीं की जाती है. एसएक्सजी, डिलीवरी का एक तरीका है. इससे कॉन्टेंट में कोई बदलाव नहीं होता.
एएमपी
एसएक्सजी का इस्तेमाल करके, एएमपी कॉन्टेंट डिलीवर किया जा सकता है. एसएक्सजी, एएमपी कॉन्टेंट को प्रीफ़ेच करने और एएमपी यूआरएल के बजाय, उसके कैननिकल यूआरएल का इस्तेमाल करके दिखाने की अनुमति देता है.एसएक्सजी जनरेट करने के लिए, एएमपी के पास अपना अलग टूलिंग होता है.amp.dev पर साइन किए गए एक्सचेंज का इस्तेमाल करके, एएमपी कॉन्टेंट दिखाने का तरीका जानें.
Chrome DevTools की मदद से एसएक्सजी को डीबग करना
एसएक्सजी को सीधे तौर पर देखने के लिए, Chromium ब्राउज़र का इस्तेमाल करें, DevTools खोलें, नेटवर्क पैनल खोलें, और इस उदाहरण के लिए, खोज वाले पेज पर जाएं. साइन किए हुए एक्सचेंज की पहचान करने के लिए, टाइप कॉलम में signed-exchange
खोजें.
झलक देखें टैब में, एसएक्सजी के कॉन्टेंट के बारे में ज़्यादा जानकारी मिलती है.
टूलिंग
एसएक्सजी को लागू करने में, किसी यूआरएल से जुड़ा एसएक्सजी जनरेट करना होता है. इसके बाद, अनुरोध करने वालों (आम तौर पर क्रॉलर) को एसएक्सजी दिखाया जाता है.
प्रमाणपत्र
एसएक्सजी जनरेट करने के लिए, आपको एक ऐसे सर्टिफ़िकेट की ज़रूरत होगी जो एसएक्सजी पर हस्ताक्षर कर सके. हालांकि, कुछ टूल में ये अपने-आप मिल जाते हैं. यह पेज उन प्रमाणपत्र प्राधिकरणों की सूची बनाता है, जो इस प्रकार का प्रमाणपत्र जारी कर सकते हैं. किसी भी एसीएमई क्लाइंट का इस्तेमाल करके, Google सर्टिफ़िकेट देने वाली संस्था से सर्टिफ़िकेट अपने-आप मिल सकते हैं. वेब पैकेजर सर्वर में, एसीएमई क्लाइंट पहले से मौजूद होता है और sxg-rs जल्द ही उपलब्ध होगा.
प्लैटफ़ॉर्म के हिसाब से एसएक्सजी टूलिंग
ये टूल कुछ खास टेक्नोलॉजी स्टैक के साथ काम करते हैं. अगर आप पहले से ही किसी ऐसे प्लैटफ़ॉर्म का इस्तेमाल कर रहे हैं जो इनमें से किसी एक टूल के साथ काम करता है, तो आपको अलग-अलग कामों के लिए इस्तेमाल किए जाने वाले टूल के मुकाबले, इसे सेट अप करना आसान लग सकता है.
sxg-rs/cloudflare_worker
Cloudflare Workers पर चलता है.sxg-rs/fastly_compute
Fastly Compute@Edge पर चलता है.अपने-आप साइन किए गए एक्सचेंज एक Cloudflare सुविधा है. यह अपने-आप सर्टिफ़िकेट हासिल करती है और साइन किए हुए एक्सचेंज जनरेट करती है.
NGINX SXG मॉड्यूल nginx का इस्तेमाल करने वाली साइटों के लिए, एसएक्सजी जनरेट करता है और उनका इस्तेमाल करता है. सेटअप करने से जुड़े निर्देश यहां दिए गए हैं.
Envoy एसएक्सजी फ़िल्टर, Envoy का इस्तेमाल करने वाली साइटों के लिए एसएक्सजी जनरेट करता है और उन्हें उपलब्ध कराता है.
अलग-अलग कामों के लिए इस्तेमाल की जाने वाली एसएक्सजी टूलिंग
sxg-rs एचटीटीपी सर्वर
sxg-rs
http_server
एसएक्सजी दिखाने के लिए रिवर्स प्रॉक्सी के तौर पर काम करता है. एसएक्सजी क्रॉलर के अनुरोधों के लिए, http_server
बैकएंड से मिले रिस्पॉन्स पर हस्ताक्षर करेगा और एसएक्सजी के साथ जवाब देगा. इंस्टॉल करने के निर्देशों के लिए, README देखें.
वेब पैकेजर सर्वर
वेब पैकेजर सर्वर webpkgserver
, Go में लिखे गए sxg-rs http_server का विकल्प है. वेब पैकेजर सर्वर सेट अप करने के बारे में निर्देश पाने के लिए, वेब पैकेजर का इस्तेमाल करके, साइन किए हुए एक्सचेंज को सेट अप करने का तरीका देखें.
वेब पैकेजर सीएलआई
वेब पैकेजर सीएलआई, दिए गए यूआरएल से जुड़ा एसएक्सजी जनरेट करता है.
webpackager \
--private\_key=private.key \
--cert\_url=https://example.com/certificate.cbor \
--url=https://example.com
एसएक्सजी फ़ाइल जनरेट होने के बाद, उसे अपने सर्वर पर अपलोड करें और
application/signed-exchange;v=b3
MIME टाइप में उसे पेश करें. इसके अलावा, आपको एसएक्सजी सर्टिफ़िकेट को
application/cert-chain+cbor
के तौर पर दिखाना होगा.
एसएक्सजी लाइब्रेरी
इन लाइब्रेरी का इस्तेमाल, अपना एसएक्सजी जनरेटर बनाने में किया जा सकता है:
sxg_rs
, एसएक्सजी जनरेट करने के लिए रस्ट लाइब्रेरी है. यह सबसे ज़्यादा काम की एसएक्सजी लाइब्रेरी है और इसेcloudflare_worker
औरfastly_compute
टूल के आधार के तौर पर इस्तेमाल किया जाता है.libsxg
, एसएक्सजी जनरेट करने के लिए एक मिनिमम सी लाइब्रेरी है. इसका इस्तेमाल, NGINX एसएक्सजी मॉड्यूल और एनवोय एसएक्सजी फ़िल्टर की बुनियाद के तौर पर किया जाता है.go/signed-exchange
एक छोटी सी Go लाइब्रेरी है जो वेबपैकेज की खास बातों के मुताबिक दी गई है. यह एसएक्सजी जनरेट करने के रेफ़रंस को लागू करने के लिए है. इसका इस्तेमाल, रेफ़रंस सीएलआई टूलgen-signedexchange
और ज़्यादा बेहतर वेब पैकेजर टूल की बुनियाद के तौर पर किया जाता है.
कॉन्टेंट पर बातचीत
जब स्वीकार करें हेडर से यह पता चलता हो कि ऐप्लिकेशन/साइन-एक्सचेंज का q-वैल्यू, text/html की q-वैल्यू से ज़्यादा या उसके बराबर है, तब सर्वर को SXG दिखाने चाहिए. इसका मतलब है कि ऑरिजिन सर्वर, क्रॉलर के लिए एसएक्सजी उपलब्ध कराएगा, ब्राउज़र के लिए नहीं. ऊपर दिए गए कई टूल डिफ़ॉल्ट रूप से ऐसा करते हैं. हालांकि, अन्य टूल के लिए यहां दिए गए रेगुलर एक्सप्रेशन का इस्तेमाल, एसएक्सजी के तौर पर सबमिट किए जाने वाले अनुरोधों के हेडर को स्वीकार करने के लिए किया जा सकता है:
http
Accept: /(^|,)\s\*application\/signed-exchange\s\*;\s\*v=[[:alnum:]\_-]+\s\*(,|$)/
इस सुझाव में Apache और nginx के उदाहरण शामिल हैं.
कैश एपीआई अपडेट करें
Google एसएक्सजी कैश मेमोरी में एक ऐसा एपीआई होता है जिसका इस्तेमाल साइट के मालिक, Cache-Control: max-age
की वजह से एसएक्सजी की समयसीमा खत्म होने से पहले, कैश मेमोरी से एसएक्सजी को हटाने के लिए कर सकते हैं. ज़्यादा जानकारी के लिए, अपडेट कैश एपीआई का रेफ़रंस देखें.
एसएक्सजी से लिंक करना
कोई भी साइट, और टैग का इस्तेमाल करके, जिन पेजों से लिंक होती है उनके एसएक्सजी को कैश मेमोरी में डाल सकती है, सर्व कर सकती है, और प्रीफ़ेच कर सकती है:
html
<a href="https://example.com/article.html.sxg">
<link rel="prefetch" as="document" href="https://example.com/article.html.sxg">
इस लेख में, एसएक्सजी डिस्ट्रिब्यूट करने के लिए nginx का इस्तेमाल करने का तरीका बताया गया है.
खास फ़ायदे
एसएक्सजी, क्रॉस-ऑरिजिन प्रीफ़ेचिंग को चालू करने की कई संभावित टेक्नोलॉजी में से एक है. इस्तेमाल की जाने वाली टेक्नोलॉजी तय करते समय, आपको अलग-अलग पहलुओं को ऑप्टिमाइज़ करना होगा. नीचे दिए गए सेक्शन में कुछ यूनीक वैल्यू दिखाई गई हैं, जो एसएक्सजी उपलब्ध करवाती हैं. समय के साथ जैसे-जैसे समाधान उपलब्ध होता जा रहा है, ये कारक बदल सकते हैं.
सेवा के लिए कम अनुरोध
क्रॉस-साइट प्रीफ़ेच करने की सुविधा का इस्तेमाल करने पर, आपके सर्वर को अतिरिक्त अनुरोध करने की ज़रूरत पड़ सकती है. यह उन मामलों में भी होता है जहां पेज को प्रीफ़ेच कर दिया गया था, लेकिन उपयोगकर्ता पेज पर नहीं गया था या उपयोगकर्ता को प्रीफ़ेच किए गए बाइट नहीं दिखाए जा सके. एसएक्सजी के लिए, इस्तेमाल न किए जाने वाले इन अतिरिक्त अनुरोधों को काफ़ी कम किया जा सकता है:
- एसएक्सजी को कैश मेमोरी में सेव किया जाता है. इन्हें उपयोगकर्ताओं को तब तक भेजा जा सकता है, जब तक कि उनकी समयसीमा खत्म न हो जाए. इसलिए, कई प्रीफ़ेच को सिर्फ़ कैश सर्वर ही मैनेज कर सकता है.
- एसएक्सजी को आपकी साइट पर, कुकी के साथ और उसके बिना, दोनों तरह के उपयोगकर्ताओं को दिखाया जा सकता है. इसलिए, नेविगेशन के बाद, पेज को फिर से फ़ेच करने की ज़रूरत कम ही होगी.
पेज की स्पीड में सुधार
प्रीफ़ेच प्लैटफ़ॉर्म और उन सुविधाओं की वजह से, आपको पेज लोड होने की रफ़्तार में और सुधार दिख सकता है जो फ़िलहाल इस पर काम करते हैं:
- आपकी साइट के लिए, कुकी के साथ एसएक्सजी दिखाए जा सकते हैं.
Link
हेडर का इस्तेमाल करके तय किए जाने पर, एसएक्सजी आपके पेजों के सबरिसॉर्स को भी प्रीफ़ेच करता है. जैसे, JavaScript, सीएसएस, फ़ॉन्ट, और इमेज.- आने वाले समय में, Google Search से एसएक्सजी प्रीफ़ेच करने की सुविधा, खोज के कई तरह के नतीजों पर उपलब्ध होगी.
नतीजा
साइन किए हुए एक्सचेंज ऐसी डिलीवरी का तरीका है जिसकी मदद से संसाधन की डिलीवरी के तरीके और उसकी मान्यता की पुष्टि की जा सकती है. इस वजह से, एसएक्सजी को तीसरे पक्ष, पब्लिशर के पूरे एट्रिब्यूशन को बनाए रखते हुए डिस्ट्रिब्यूट कर सकते हैं.