Signed HTTP Exchanges

كينوكو ياسودا

Signed HTTP Exchange (أو "SXG") هي مجموعة فرعية من التكنولوجيا الناشئة المسماة حزم الويب، والتي تمكّن الناشرين من نقل المحتوى الخاص بهم بأمان، أي توفيره لإعادة توزيعه من خلال الحفاظ على نزاهة المحتوى ونسبه إلى جهات أخرى. ويشتمل المحتوى القابل للنقل على العديد من المزايا، بدءًا من تسليم المحتوى بشكل أسرع إلى تسهيل مشاركة المحتوى بين المستخدمين وتوفير تجارب أبسط في وضع عدم الاتصال بالإنترنت.

إذًا، كيف تعمل Signed HTTP Exchanges؟ تتيح هذه التقنية للناشر توقيع عملية تبادل HTTP واحدة (أي زوج طلب/استجابة)، بالطريقة التي يمكن من خلالها تقديم التبادل المُوقَّع من أي خادم تخزين مؤقت. عندما يُحمِّل المتصفح Signed Exchange هذه، يمكن أن يعرض بأمان عنوان URL للناشر في شريط العناوين، لأن التوقيع في التبادل يُعد دليلاً كافيًا على أنّ المحتوى قد تم في الأصل من الناشر.

Signed Exchange: جوهر

يعمل هذا على فصل مصدر المحتوى عن الجهة التي وزعته. يمكن نشر المحتوى الخاص بك على الويب، بدون الاعتماد على خادم أو اتصال أو خدمة استضافة محددة! نحن متحمسون بشأن الاستخدامات المحتملة لآلية SXG، مثل:

  • الجلب المسبق للحفاظ على الخصوصية: بالرغم من أنّ الجلب المسبق للموارد (على سبيل المثال، باستخدام رابط rel=prefetch) للانتقال التالي يمكن أن يجعل عملية التنقل تبدو أسرع بكثير، إلا أنّ لها أيضًا سلبيات متعلقة بالخصوصية. على سبيل المثال، إنّ الموارد التي الجلب المُسبَق للانتقالات المتعدّدة المصادر ستفصح للموقع الوجهة عن أنّ المستخدم يُحتمل أن يكون مهتمًا بمعلومات معيّنة حتى إذا لم يزر المستخدم الموقع الإلكتروني في النهاية. من ناحية أخرى، تسمح آلية SXG بالجلب المسبق للموارد المتعدّدة المصادر من ذاكرة تخزين مؤقت سريعة بدون الوصول إلى الموقع الإلكتروني الوجهة، وبالتالي إبلاغ اهتمام المستخدم فقط في حال حدوث التنقّل ووقته. ونعتقد أن هذا يمكن أن يكون مفيدًا للمواقع التي تهدف إلى إرسال المستخدمين إلى مواقع ويب أخرى. وعلى وجه الخصوص، تخطط Google لاستخدام هذه السمة على صفحات نتائج البحث من Google بهدف تحسين عناوين URL لصفحات AMP وزيادة سرعة النقرات على نتائج البحث.

  • مزايا شبكة توصيل المحتوى (CDN) بدون التنازل عن التحكّم في المفتاح الخاص للشهادة: المحتوى الذي أصبح رائجًا فجأةً (على سبيل المثال، يكون مرتبطًا من الصفحة الأولى من reddit.com) يحمِّل الموقع الإلكتروني بشكلٍ زائد غالبًا، وإذا كان الموقع الإلكتروني صغيرًا نسبيًا، قد يتباطأ أو حتى يصبح غير متاح مؤقتًا. ويمكن تجنُّب هذا الموقف إذا تمت مشاركة المحتوى باستخدام خوادم ذاكرة تخزين مؤقت سريعة وفعّالة، وتتيح آلية SXG تنفيذ ذلك بدون مشاركة مفاتيح بروتوكول أمان طبقة النقل (TLS).

تجربة Signed Exchange

تتوفّر آلية Signed Exchange في الإصدار 73 من Chrome والإصدارات الأحدث، وكانت متاحة في السابق كنسخة تجريبية أصلية.

إنشاء آلية SXG الخاصة بك

لإنشاء ملفات SXG للأصل (كناشر)، تحتاج إلى مفتاح شهادة لتوقيع التوقيع، ويجب أن تحتوي الشهادة على إضافة"CanSignHttpExchanges" خاصة حتى تتم معالجتها باعتبارها SXG صالح. اعتبارًا من تشرين الثاني (نوفمبر) 2018، أصبح DigiCert هو مرجع التصديق الوحيد الذي يمكن استخدام هذه الإضافة فيه، ويمكنك طلب الشهادة المتوافقة مع SXG من هذه الصفحة.

بعد الحصول على شهادة من أجل SXG، يمكنك إنشاء ملفات SXG خاصة بك باستخدام أدوات إنشاء المراجع المنشورة على github.

يمكنك أيضًا إلقاء نظرة على نماذج SXG الفعلية في مستودع الرموز في Chrome (على سبيل المثال، هذا هو أبسط مستودع يتم إنشاؤه لملف نصي بسيط). يُرجى ملاحظة أنّه يتم إنشاؤها بشكل أساسي للاختبارات المحلية، لذا يُرجى عدم توقُّع وجود شهادات وطوابع زمنية صالحة في التوقيع.

اختبار الميزة محليًا

لإنشاء ملفات SXG لأغراض الاختبار، يمكنك إنشاء شهادة موقَّعة ذاتيًا وتفعيل chrome://flags/#allow-sxg-certs-without-extension لمعالجة ملفات SXG التي تم إنشاؤها باستخدام الشهادة بدون الإضافة الخاصة في Chrome.

من المفترض أن يعمل الرمز البرمجي كما يلي في حال إعداد الخادم والشهادة وملفات SXG بشكل صحيح:

<!-- prefetch the sample.sxg -->
<link rel="prefetch" href="https://your-site.com/sample.sxg" />

<!-- clicking the link below should make Chrome navigate to the inner
     response of sample.sxg (and the prefetched SXG is used) -->
<a href="https://your-site.com/sample.sxg">Sample</a>

يُرجى ملاحظة أنّ SXG لا تتوافق إلا مع علامة الارتساء (<a>) وlink rel=prefetch في الإصدار 73 من Chrome والإصدارات الأحدث. تجدر الإشارة أيضًا إلى أنّ صلاحية التوقيع تقتصر على 7 أيام لكل مواصفات، لذا ستنتهي صلاحية المحتوى الموقَّع بسرعة نسبيًا.

تقديم الملاحظات

نتطلّع إلى معرفة ملاحظاتك بشأن هذه التجربة على الرابط webpackage-dev@chromium.org. يمكنك أيضًا الانضمام إلى مناقشة المواصفات أو إبلاغ الفريق عن خطأ في Chrome. ستساعدنا ملاحظاتك بشكل كبير في عملية توحيد المقاييس وتساعدنا أيضًا في معالجة مشاكل التنفيذ.

إضافة ملاحظات