يرسل الخادم عادة HTML بعد أن يجهز الاستجابة، ثم يكتشف المتصفح من الصفحة ملفات CSS والخطوط والصور التي يحتاجها. يتيح رد HTTP 103 إرسال معلومات تمهيدية قبل الرد النهائي، مثل روابط موارد يراد للمتصفح أن يبدأ الاستعداد لها. لكن إرسال تلميح لا يضمن أن المورد سيصل أسرع؛ قد يكون الملف مخزناً، أو يكون الرابط غير مستخدم، أو لا تمر الاستجابة عبر وسيط يدعم هذا المسار. مشروع تخرج في هندسة البرمجيات يمكن أن يقارن الصفحتين بقياس مضبوط بدلاً من الاكتفاء بإضافة ترويسة ثم إعلان التحسن.
تصلح هذه التجربة لمشاريع تخرج هندسة البرمجيات إذا فصل الفريق قياس الاستجابة المبكرة عن بقية مؤشرات الصفحة.
ما معنى 103 في تسلسل الاستجابة؟
يعرف RFC 8297 حالة Early Hints باعتبارها معلومة تساعد العميل على التحضير لمعالجة الرد النهائي، ويمكن أن تحمل ترويسة Link. الرد 103 لا يحل محل 200 أو 404 الذي ينهي الطلب؛ إنه إشارة مبكرة قد يتبعها رد نهائي آخر. أنشئ خادماً محلياً يرسل 103 ثم ينتظر زمناً محدداً قبل HTML، وسجل الاستجابات كما تظهر عند العميل. لا تستخدم إعداداً يتجاهل الرد الوسيط ثم تستنتج من وجود الترويسة وحده أنها وصلت مبكراً.
تشرح وثائق MDN لحالة 103 حالات استخدام مثل تهيئة اتصال أو تحميل مورد. راجع متطلبات المتصفح والخادم والبروكسي في البيئة التي تختبرها؛ دعم جزء من السلسلة لا يعني دعمها جميعاً. اذكر بروتوكول HTTP المستخدم وإصدار المتصفح، لأن النتيجة تتأثر بتكوين الاتصال والتخزين المؤقت.
اختر مورداً له مبرر
ابدأ بصفحة ثابتة لها ملف CSS رئيسي وخط محلي وصورة بطل اختيارية. قارن تلميحاً لملف CSS تستخدمه الصفحة فعلاً بتلميح لخط لا يظهر في الشاشة الأولى. لا ترسل قائمة طويلة من preload؛ كل تلميح قد ينافس مورداً آخر على الشبكة. حدد فرضية واحدة، مثل أن اكتشاف CSS قبل HTML سيقلل وقت وصول أول نمط مرئي في اتصال بارد. لا تعد المستخدم بنتيجة قبل القياس، ولا تحول قيمة أداء من جهاز واحد إلى حقيقة عامة.
في التصميم المقارن، اجعل الصفحة A بلا 103 والصفحة B ترسل 103 مع رابط المورد نفسه. ثبّت المحتوى وحجم الملف ومسار الخادم، واستخدم مجموعة تشغيلات لكل حالة مع مسح ذاكرة التخزين أو تركها دافئة وفقاً لخطة منفصلة. لا تخلط التشغيلات الدافئة والباردة في رقم واحد.
تأكد من أن التلميح سبق HTML
التحدي العملي هو التوقيت. التقط سجل الشبكة أو سجل الخادم بحيث يظهر 103 قبل الاستجابة النهائية، ثم افحص متى بدأ المتصفح طلب المورد. إذا رأيت ملف CSS قيد النقل بعد HTML، فقد لم يصل التلميح في الوقت المتوقع أو لم يتعامل معه العميل بالطريقة المفترضة. معيار Fetch يصف نموذج جلب الموارد في المتصفح؛ لا تفترض أن كل طبقة وسيطة تعرض رسائل 1xx للتطبيق بنفس شكل سجلات الخادم.
سجل لكل تشغيل: وقت الطلب، وقت 103، وقت HTML، وقت بدء المورد، مصدر المورد (شبكة أو cache)، وحالة الصفحة. اختر مؤشراً محدداً وفسر طريقة قياسه. لو أظهرت أدوات المتصفح أن المورد بدأ قبل HTML في الحالتين بسبب preload مكتوب داخل الصفحة أو تخزين دافئ، فلن تستطيع نسبة الفرق إلى 103.
مثال رقمي لطريقة العرض
افترض أن الخادم ينتظر 300 مللي ثانية قبل HTML، وأن ملف CSS حجمه 24 كيلوبايت. في تشغيل بلا تلميح يبدأ طلب CSS بعد وصول HTML، بينما في التشغيل الثاني يبدأ بعد 103. لا نضع رقماً متوقعاً لتحسن العرض لأن زمن الشبكة ومكان التخزين ونوع الاتصال يغير النتيجة. اعرض نقاطاً لكل تشغيل أو توزيعاً للقياسات بدلاً من الاكتفاء بأفضل نتيجة سجلها الفريق.
اكتب معادلة بسيطة للفرق: delta = median(control) - median(hints) للمؤشر المختار، ثم أظهر عدد القياسات وحدودها. الوسيط لا يغني عن عرض التشتت أو فحص الحالات الشاذة. الأرقام هنا سيناريو تعليمي وليست نتيجة تجربة نفذت على استضافة أو متصفح حي.
حالات فشل تستحق اختباراً مستقلاً
اختبر خادماً يرسل 103 متأخراً جداً، ووسيطاً يحذفه، ورابطاً لا تستخدمه الصفحة، وملفاً مخزناً، وصفحة HTML تنتهي بخطأ. تأكد أن المتصفح يعرض محتوى الصفحة حتى إن تجاهل التلميح؛ الوظيفة الأساسية تعتمد على الرد النهائي. راقب أيضاً تكرار تنزيل المورد إذا تغيرت طريقة الربط أو اختلفت خصائص الطلب عن الرابط النهائي.
وثق أي قيود من CDN أو وكيل أو إطار استضافة. قد يكون تأخير 103 عبر السلسلة أطول من الفائدة المحتملة، وقد لا يكون للمورد أولوية عالية في صفحة معينة. النتيجة السلبية مفيدة: يمكن أن تثبت أن التلميح غير لازم في هذا السيناريو وأن التنفيذ الأبسط أفضل.
التسليم وحدود الادعاء
يسلم الفريق خادماً تجريبياً، صفحتي مقارنة، وصف طريقة تسجيل الشبكة، وملف نتائج خاماً منقحاً. ترتبط الفكرة بـمشاريع التخرج وتطوير تطبيقات الويب. يستطيع الطالب المقارنة مع مختبر إفساح المجال لمهام JavaScript، لكن 103 يعمل قبل/حول وصول المستند بينما scheduler.yield يعالج تناوب المهام بعد بدء شيفرة الصفحة؛ القياسان مستقلان ولا ينبغي جمعهما في استنتاج واحد.
لا تقيس تجربة 103 وحدها قابلية الصفحة للاستخدام، ولا تفسر كل تغير في الأداء. حدّد المتصفح ونقطة الشبكة وحالة cache، وأعد الاختبار بعد تغير الخادم أو الموارد. لا تنشر عبارة «أسرع بنسبة كذا للجميع» إذا كانت العينة صغيرة أو مصطنعة. يكفي أن يبين التقرير متى وصل التلميح، وهل استُخدم، وما التغير الذي رصده الفريق في ظروف موصوفة.
المصادر
مراجعة المصادر: .
اختبار المثال وحدوده
أزمنة الاستجابة وحجم الموارد في المثال افتراضية؛ ينبغي قياسها على خادم ومتصفح الاختبار الخاصين بالفريق.
مقالات ذات صلة
الخدمة المرتبطة: تطوير المواقع والتطبيقات والأنظمة المخصصة.
أرسل متطلبات مشروعك