تاريخ النشر: 14 أيار (مايو) 2025
نقل قاموس الضغط هو معيار جديد يتيح لنا ضغط المحتوى المتكرر في جميع الطلبات، وتم إصداره في الإصدار 130 من Chrome في أواخر عام 2024. وقد تبنّى محرّك بحث Google هذه التكنولوجيا الجديدة وشهد تحسينات كبيرة.
الفرصة
هناك الكثير من المحتوى المكرّر في صفحات الويب التي نزورها. تتألف العديد من الصفحات على الموقع الإلكتروني نفسه من أجزاء كبيرة من الرمز نفسه، سواء كان HTML أو CSS أو JavaScript، مع تغيُّر المحتوى فقط بين كل هذا الرمز. على الرغم من أنّ كل نتيجة هي مجموعة فريدة من مئات الميزات تؤدي إلى إنشاء محتوى فريد تمامًا، لا يزال هناك الكثير من القواسم المشتركة في الرمز البرمجي الذي يتم إرساله إلى المتصفّح لعرض هذه النتائج.
من الناحية المرئية، تتشابه معظم صفحات نتائج البحث إلى حدّ ما بغض النظر عن عبارة البحث التي يتم إدخالها: في أعلى الصفحة، يظهر شعار Google وشريط البحث وبعض عناصر التحكّم. في المنتصف، لدينا بعض علامات التبويب لنوع البحث، ثم قائمة بنتائج البحث على يمين الصفحة تتخلّلها تطبيقات مصغّرة مختلفة لمساعدة المستخدم، وسياق إضافي على يسار الصفحة مع لوحات "لمحة":

أخيرًا، في أسفل الصفحة، لدينا خيارات تقسيم الصفحات والتذييل العادي. هذا هو المحتوى المرئي فقط، ولكن هناك الكثير من الرموز البرمجية (HTML وCSS وJavaScript) التي تُستخدم في الكواليس لإنشاء هذه الصفحة. يتم تضمين الكثير من هذا الرمز مباشرةً في رمز HTML للصفحة لتحسين الأداء. على الرغم من أنّ هذا الإجراء يسمح بتحميل الصفحة بشكل أسرع، إلا أنّه يفرض تكلفة عدم مشاركة هذا الرمز بين صفحات النتائج المختلفة، على عكس ما يسمح به المورد المخزّن مؤقتًا خارجيًا.
الضغط على الويب
إنّ تقنية الضغط هي تقنية يتم استخدامها بشكل كبير على الويب. يتيح ضغط الموارد باستخدام gzip أو خوارزميات أحدث مثل Brotli أو Zstandard تجنُّب التكرار في الملف من خلال ضغط بدون فقدان البيانات لحزم جميع المعلومات بأكبر قدر ممكن من الكثافة على الخادم قبل الإرسال. ويمكن للمتصفح بعد ذلك فك ضغط البايتات المضغوطة لاستعادة المحتوى الأصلي. بالنسبة إلى الصور، يوفّر الضغط غير القابل للاسترداد مزايا مشابهة من خلال إزالة وحدات البايت الإضافية التي قد لا تختلف بشكل ملحوظ للمستخدمين.
حتى وقت قريب، كان الضغط على الويب يقتصر على الضغط داخل الموارد. لم يكن من الممكن إجراء عملية الضغط على مستوى موارد مختلفة، ولا على مستوى صفحات مختلفة بالتأكيد. وقد تم منذ فترة طويلة الاعتراف بهذا القيد الذي سعى مهندسو الويب إلى حلّه.
ميزة "نقل قاموس ضغط البيانات" لإنقاذ الموقف
Compression Dictionary Transport هو معيار جديد يتيح الضغط على مستوى الموارد باستخدام "قواميس" مشترَكة تتيح استبدال سلاسل وحدات البايت الشائعة بمراجع من هذا القاموس المشترَك.
تتيح خوارزميات الضغط الحديثة، مثل Brotli وZstandard، استخدام قواميس المصطلحات الشائعة التي تسمح بضغط أكبر من خلال استبدال هذه المصطلحات بإشارة أصغر إلى القاموس. يتم أيضًا تضمين قاموس مدمج بتنسيق Brotli يتضمّن مصطلحات الويب الشائعة. يستند أسلوب "نقل قاموس مضغوط" إلى ذلك من خلال توفير طرق ليتشارك بها الخادم والمتصفّح القواميس المخصّصة.
يمكن أن تكون القواميس المخصّصة موردًا سبق استخدامه على الموقع الإلكتروني. على سبيل المثال، يمكنك استخدام app.v1.js
كقاموس عند تنزيل app.v2.js
لتنزيل الفرق فقط (يُعرف ذلك غالبًا باسم "الضغط التفاضلي"). بدلاً من ذلك، يمكن تحديد مورد قاموس منفصل باستخدام علامة <link rel="compression-dictionary">
(أو عنوان HTTP Link
المكافئ).
ويمكن أن يؤدي ذلك إلى تقليل حجم تنزيل الموارد التي تتضمّن الكثير من المحتوى أو الرموز المشترَكة، مثل صفحات نتائج البحث المذكورة سابقًا.
استخدام "بحث Google" لقواميس الضغط
يسعى فريق "بحث Google" بشكلٍ مستمر إلى تحسين أداء "بحث Google". وقد كان من أوائل المستخدمين لمعجمات الضغط، لأنّه رأى إمكانات هذه التكنولوجيا.
يستخدم محرّك بحث Google تقنية ضغط Brotli المشترَكة لصفحات النتائج مع ملف قاموس منفصل تم إنشاؤه من عيّنة تمثيلية لنتائج البحث. تضمن عملية المعالجة الآلية القوية تجديد القاموس باستمرار، بما يتوافق مع محتوى نتائج البحث المجانية المتغيّر بشكل متكرّر والذي يتم إصداره عدة مرات في اليوم. يمكنك استخدام "أدوات مطوّري البرامج" لمعرفة كيفية عمل ذلك بالضبط.
عندما يحمّل العميل صفحة نتائج بحث لأول مرة، يقدّم الخادم رابطًا إلى القاموس باستخدام عنوان HTTP Link:
مع نوع rel=compression-dictionary
:

Link
في علامة التبويب "الشبكة"إذا كان العميل يتيح ضغط قاموس Brotli، ولكنّه لم يُخزِّن القاموس المشترَك في ذاكرة التخزين المؤقت بعد، ينزِّل المتصفّح هذا القاموس أثناء وقت السكون. تتضمّن استجابة القاموس عنوان الاستجابة Use-As-Dictionary
الذي يُعلم المتصفّح بالموارد التي يمكنه استخدام هذا القاموس فيها:

Use-As-Dictionary
في علامة التبويب "الشبكة"سيستخدم القاموس الدلالات العادية cache-control
وسيكون متاحًا لأي موارد تتطابق مع القواعد المحدّدة في هذا العنوان. في هذا المثال، تبدأ الصفحات بـ /search
.
عند تحميل صفحات نتائج البحث في المستقبل، يمكن للمتصفّح إخبار الخادم بأنّه يتضمّن قاموسًا باستخدام عنوان طلب HTTP Available-Dictionary
. توضِّح إعادة تحميل الصفحة ذلك في الإجراء التالي:

Available-Dictionary
في علامة التبويب "الشبكة"بعد تفعيل مربّع الاختيار الحفاظ على السجلّ وإجراء الفلترة، يمكننا مقارنة الردّين:

في هذا المثال، يمثّل الطلب الأول الاستجابة الكاملة التي تبلغ 107 كيلوبايت ويستخدم ضغط Brotli (br
)، في حين أنّ طلب إعادة التحميل الثاني يمثّل نصف الحجم تقريبًا، أي 60 كيلوبايت، ويستخدم ضغط Brotli المضغوط بالقاموس (dcb
)، ما يؤدي إلى تسريع وقت التنزيل.
في Chrome، يمكنك الانتقال إلى صفحة chrome://net-internals/#sharedDictionary
لعرض "القواميس المشترَكة" وحذفها إذا أردت تكرار هذا المثال من البداية.

#sharedDictionary
النتائج
تم طرح هذا التغيير لمستخدمي "بحث Google" في ربيع عام 2025، وبدأ بمستخدمي Chrome. وقد أدّى ذلك إلى تقليل متوسط حجم الحمولة البرمجية لصفحات HTML على مستوى جميع مستخدمي Chrome بنسبة% 23 مقارنةً بضغط Brotli العادي. ويشمل هذا المتوسط العام كلاً من النتائج غير المضغوطة باستخدام القاموس (مثل المستخدمين لأول مرة بدون قاموس) ونتائج البحث المضغوطة باستخدام القاموس. بالنسبة إلى النتائج المضغوطة في القاموس، تكون المساحة التي يتم توفيرها أكبر، كما رأينا في التحسين الذي يقارب% 50 في المثال السابق الذي اطّلعنا عليه.
أدّى ذلك إلى تحسين سرعة عرض أكبر محتوى مرئي (LCP) بنسبة% 1.7 بشكل عام، وبنسبة تصل إلى% 9 على الشبكات ذات وقت الاستجابة العالي. قد يبدو هذا الرقم صغيرًا، ولكنّ "بحث Google" هو موقع إلكتروني محسّن بشكل كبير، لذا فإنّ المكاسب بهذا الحجم تكون كبيرة. وقد تحقّق المواقع الإلكترونية الأخرى تحسينات أكبر باستخدام هذه التكنولوجيا.
جرِّب هذه الميزة على موقعك الإلكتروني.
أصبح تنسيق Compression Dictionary Transport جاهزًا للاستخدام الآن في جميع المتصفّحات المستندة إلى Chromium (Chrome وEdge وOpera وما إلى ذلك). وهذه ميزة تحسين تدريجية ستتجاهلها المتصفّحات غير المتوافقة، ولكن مع توفّر هذه الميزة في المزيد من المتصفّحات، يمكن أن تستفيد منها أيضًا.
إنّ التحديات التي تعالج هذه التكنولوجيا ليست محصورة في "بحث Google". يمكن أن تستفيد العديد من المواقع الإلكترونية من ميزة "نقل القاموس المضغوط"، سواء باستخدام قاموس منفصل مثل "بحث Google"، أو باستخدام مرجع حالي كقاموس (مثل الإصدار السابق من التطبيق عند طرح إصدار جديد).
اطّلِع على الدليل على MDN للحصول على مزيد من التفاصيل حول آلية عمل هذه التكنولوجيا وكيفية تنفيذها على موقعك الإلكتروني.
يتطلّب ذلك إجراء بعض الإعدادات على خادمك أو عملية الإنشاء لإنشاء موارد مضغوطة مستندة إلى القاموس وعرضها على النحو المناسب، ولكن يمكن أن تكون النتائج مثيرة للإعجاب من حيث الأداء.