साइन किए हुए एक्सचेंज (एसएक्सजी)

एसएक्सजी, डिलीवरी का एक तरीका है जिसकी मदद से दिए गए सोर्स से अलग होता है.

Katie Hempenius
Katie Hempenius
Devin Mullins
Devin Mullins

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

इस लेख में एसएक्सजी के बारे में खास जानकारी दी गई है: यह कैसे काम करता है, इसके इस्तेमाल के उदाहरण, और टूल कैसे काम करते हैं.

ब्राउज़र के साथ काम करना

SXG, Chromium पर आधारित ब्राउज़र के साथ काम करता है (यह वर्शन Chrome 73, Edge 79, और Opera 64 के लिए उपलब्ध है).

खास जानकारी

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

यह कैसे काम करता है

कोई साइट, अनुरोध/रिस्पॉन्स पेयर ("एचटीटीपी एक्सचेंज") पर इस तरह से साइन करती है कि यह ब्राउज़र का इस्तेमाल करके, कॉन्टेंट के ऑरिजिन और इंटेग्रिटी की अलग-अलग पुष्टि की जा सकती है कॉन्टेंट को कैसे डिस्ट्रिब्यूट किया गया था. इस वजह से, ब्राउज़र ऑरिजिन साइट का यूआरएल डालें, न कि उस सर्वर का यूआरएल जो पता बार में ने कॉन्टेंट डिलीवर किया.

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

ऐतिहासिक रूप से, हर उपयोगकर्ता के लिए किसी तीसरे पक्ष की मदद से अपना कॉन्टेंट डिस्ट्रिब्यूट करने के लिए, एट्रिब्यूशन, साइट के लिए अपने एसएसएल सर्टिफ़िकेट को डिस्ट्रिब्यूटर. इसमें सुरक्षा से जुड़ी कमियां हैं; इसके अलावा, यह दूरी 30 मिनट से कॉन्टेंट को पोर्टेबल के तौर पर फिर भी इस्तेमाल किया जा सकता है.

SXG फ़ॉर्मैट

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

यहां डिकोड की गई एसएक्सजी फ़ाइल का उदाहरण दिया गया है.

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=&quot;https://test.web.app/ViFgi0WfQ-NotPJf8PBo2T5dEuZ13NdZefPybXq_HhE&quot;;
    date=1597680503;expires=1598285303;integrity=&quot;digest/mi-sha256-03&quot;;sig=<em>MEUCIQD5VqojZ1ujXXQaBt1CPKgJxuJTvFlIGLgkyNkC6d7LdAIgQUQ8lC4eaoxBjcVNKLrbS9kRMoCHKG67MweqNXy6wJg=</em>;
    validity-url=&quot;https://example.org/webpkg/validity&quot;
header integrity: sha256-Gl9bFHnNvHppKsv+bFEZwlYbbJ4vyf4MnaMMvTitTGQ=</p>

<p>The exchange has a valid signature.
payload [1256 bytes]:</p>
<pre class="prettyprint"><code>&lt;title&gt;SXG example&lt;/title&gt;
&lt;meta charset=&#34;utf-8&#34;&gt;
&lt;meta http-equiv=&#34;Content-type&#34; content=&#34;text/html; charset=utf-8&#34;&gt;
&lt;style type=&#34;text/css&#34;&gt;
body {
    background-color: #f0f0f2;
    margin: 0;
    padding: 0;
}
&lt;/style&gt;
</code></pre>
<div>
    <h1>Hello</h1>
</div>

<p>

सिग्नेचर में मौजूद expires पैरामीटर, एसएक्सजी के खत्म होने की तारीख बताता है. ऐप्लिकेशन एसएक्सजी ज़्यादा से ज़्यादा सात दिनों के लिए मान्य हो सकता है. ज़्यादा जानकारी के लिए यहां जाएं: साइन किए हुए एचटीटीपी एक्सचेंज में सिग्नेचर हेडर खास जानकारी.

सर्वर साइड को मनमुताबिक बनाने की सुविधा

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

वेब पैकेजिंग

एसएक्सजी, वेब का हिस्सा है पैकेजिंग स्पेसिफ़िकेशन प्रपोज़ल. इसके अलावा एसएक्सजी के लिए, वेब पैकेजिंग स्पेसिफ़िकेशन का दूसरा मुख्य कॉम्पोनेंट वेब बंडल है ("बंडल किए गए एचटीटीपी एक्सचेंज"). वेब बंडल, एचटीटीपी संसाधनों और बंडल को समझने के लिए ज़रूरी मेटाडेटा.

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

साइन किए हुए एक्सचेंज की मदद से पेज लोड होने की स्पीड बढ़ाना

साइन किए हुए एक्सचेंज की सुविधा चालू करने से, वेब पेज की परफ़ॉर्मेंस बेहतर हो सकती है. इससे, खास तौर पर सबसे बड़े कॉन्टेंटफ़ुल पेंट (एलसीपी) के मामले में, आपकी साइट की वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी पर असर पड़ता है. Google Search, शुरुआती उपभोक्ता के तौर पर एसएक्सजी का इस्तेमाल करता है. इससे उपयोगकर्ताओं को खोज नतीजों के पेज से लोड होने वाले पेजों के लिए, तेज़ी से पेज लोड करने का अनुभव मिलता है.

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

एसएक्सजी, परफ़ॉर्मेंस को बेहतर बनाने के अन्य तरीकों के साथ मिलकर सबसे सही तरीके से काम करता है. जैसे, सीडीएन का इस्तेमाल करना और रेंडर होने से रोकने वाले सबरिसॉर्स को कम करना. लागू करने के बाद, एसएक्सजी को प्रीफ़ेच करने से एलसीपी को ज़्यादा से ज़्यादा फ़ायदा पाने के लिए, इन सुझावों को अपनाएं. कई मामलों में, इस तरह के ऑप्टिमाइज़ेशन की वजह से, Google Search से तुरंत पेज लोड हो सकते हैं:

साइन किए हुए एक्सचेंज का असर

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

कई ग्लोबल ब्रैंड और साइटों को साइन किए हुए एक्सचेंज का फ़ायदा पहले ही मिल चुका है. केस स्टडी के तौर पर, देखते हैं कि साइन किए हुए एक्सचेंज को लागू करने से कैसे RebelMouse को मदद मिली. यह एक अहम कॉन्टेंट मैनेजमेंट सिस्टम (सीएमएस) है. इससे परफ़ॉर्मेंस और कारोबार की मेट्रिक:

  • Norcity ने एलसीपी में 41%की बढ़ोतरी की
  • Paper Journal ने हर उपयोगकर्ता के हिसाब से सेशन में 27% की बढ़ोतरी देखी है
  • MLT ब्लॉग ने पेज लोड होने में लगने वाले समय में 21%की कमी की

Cloudflare ने पाया कि एसएक्सजी ने 98% साइटों के लिए टीटीएफ़बी में सुधार किया. साथ ही, 85% साइटों के लिए एलसीपी में सुधार किया. एसएक्सजी की ज़रूरी शर्तें पूरी करने वाले पेज लोड में 20% से ज़्यादा का मीडियन सुधार हुआ.

इंडेक्स करना

किसी पेज की एसएक्सजी और गैर-एसएक्सजी जानकारी को रैंक या इंडेक्स नहीं किया जाता इसे Google Search में अलग तरीके से दिखाया जाता है. एसएक्सजी, डिलीवरी का एक तरीका है. हालांकि, इसमें ऐसा नहीं होता दिए गए कॉन्टेंट में कोई बदलाव कर सकें.

एएमपी

एसएक्सजी का इस्तेमाल करके, एएमपी कॉन्टेंट डिलीवर किया जा सकता है. एसएक्सजी की मदद से, एएमपी कॉन्टेंट को प्रीफ़ेच किया जा सकता है और उसे अपने कैननिकल यूआरएल का इस्तेमाल करके दिखाया जाता है, न कि इसके एएमपी यूआरएल का.एएमपी का अपना अलग यूआरएल है एसएक्सजी जनरेट करने के लिए टूलिंग.साइन किए हुए एक्सचेंज का इस्तेमाल करके एएमपी पेज दिखाने का तरीका जानें amp.dev.

Chrome DevTools की मदद से एसएक्सजी डीबग करना

एसएक्सजी को पहली बार देखने के लिए, Chromium ब्राउज़र का इस्तेमाल करें, DevTools खोलें, नेटवर्क पैनल खोलें, और उदाहरण के तौर पर दिए गए इस खोज पेज पर जाएं. साइन किए हुए एक्सचेंज की पहचान करने के लिए, टाइप कॉलम में signed-exchange को खोजें.

&#39;नेटवर्क&#39; में एसएक्सजी अनुरोध दिखाने वाला स्क्रीनशॉट DevTools में पैनल
DevTools में नेटवर्क पैनल

झलक टैब में, एसएक्सजी के कॉन्टेंट के बारे में ज़्यादा जानकारी मिलती है.

&#39;झलक&#39; का स्क्रीनशॉट एसएक्सजी के लिए टैब
DevTools में झलक टैब

टूलिंग

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

प्रमाणपत्र

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

प्लैटफ़ॉर्म के हिसाब से एसएक्सजी टूल

ये टूल खास टेक्नोलॉजी स्टैक के साथ काम करते हैं. अगर आप पहले से ही किसी इनमें से किसी एक टूल पर काम करता है. इसलिए, इसे सेट अप करना ज़्यादा आसान हो सकता है. अलग-अलग कामों के लिए इस्तेमाल किया जाने वाला टूल है.

अलग-अलग कामों के लिए इस्तेमाल की जाने वाली एसएक्सजी टूलिंग

sxg-rs एचटीटीपी सर्वर

एसएक्सजी-आरएस http_server के लिए रिवर्स प्रॉक्सी की तरह काम करता है एसएक्सजी उपलब्ध कराते हैं. एसएक्सजी क्रॉलर के अनुरोधों के लिए, http_server से रिस्पॉन्स मिलता है और एसएक्सजी की मदद से रिस्पॉन्स देता है. इंस्टॉल करने के लिए निर्देशों के लिए, पढ़ें.

वेब पैकेजर सर्वर

वेब पैकेजर सर्वर, 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, Rust लाइब्रेरी है एसएक्सजी जनरेट करना. यह सबसे ज़्यादा सुविधा वाली एसएक्सजी लाइब्रेरी है और इसका इस्तेमाल cloudflare_worker और fastly_compute टूल के आधार पर.

  • libsxg, मिनिमल C लाइब्रेरी का इस्तेमाल करता है: एसएक्सजी जनरेट करना. इसका इस्तेमाल NGINX SXG मॉड्यूल और Envoy SXG फ़िल्टर.

  • go/signed-exchange एक छोटी सी Go लाइब्रेरी है, जो वेबपैकेज स्पेसिफ़िकेशन के ज़रिए संदर्भ इसे लागू करें एसएक्सजी जनरेट करना. इसका इस्तेमाल इसके रेफ़रंस सीएलआई टूल की बुनियाद के तौर पर किया जाता है, gen-signedexchange वेब पैकेजर टूल की सुविधा जोड़ी गई है.

कॉन्टेंट के लिए मोल-भाव

जब स्वीकार हेडर यह संकेत देता है कि ऐप्लिकेशन/हस्ताक्षर किए गए एक्सचेंज के लिए q-वैल्यू, text/html की q-वैल्यू से ज़्यादा या उसके बराबर है, तब सर्वर को एसएक्सजी दिखाना चाहिए. इसका मतलब यह है कि ऑरिजिन सर्वर, क्रॉलर को एसएक्सजी दिखाएगा, लेकिन ब्राउज़र को नहीं. ऊपर दिए गए कई टूल डिफ़ॉल्ट रूप से ऐसा करते हैं, लेकिन दूसरे टूल के लिए नीचे दिए गए रेगुलर एक्सप्रेशन का इस्तेमाल, अनुरोधों के स्वीकार करें हेडर को मैच करने के लिए किया जा सकता है. इसे एसएक्सजी के तौर पर दिखाया जाना चाहिए: 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 से एसएक्सजी प्रीफ़ेच करने की सुविधा, खोज के ज़्यादा नतीजों के लिए उपलब्ध होगी.

नतीजा

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

इसके बारे में और पढ़ें