الخلاصة

  • تحمل استجابة 103 حقولاً يُرجَّح أن تظهر لاحقاً، لا نسخة مبكرة من الجواب النهائي. يمكن للمتصفح بدء preload، لكن التلميح لا يستبدل الحقول النهائية ولا يغير طريقة معالجتها.
  • قد يقترح الأصل أو وسيط التخزين عملاً مبكراً؛ يقرر العميل قبول الكلفة؛ تحسم الاستجابة النهائية الملاحة؛ ويخضع المورد المقترح بصورة مستقلة لـDNS وTLS والسياسات والتكامل والاستخدام الفعلي.

وصل طلب الملاحة إلى التطبيق. الهيكل العام معروف، لكن فحص الجلسة قد يعيد الصفحة المطلوبة أو يحوّل المستخدم إلى تسجيل الدخول. يحتفظ الطرف الوسيط بحقل قديم يقول إن shell.css كان مهماً. الانتظار يحافظ على اليقين ويهدر دورة شبكية. البدء الآن قد يوفر الزمن أو ينفق البيانات على صفحة لن توجد.

يصوغ RFC 8297 هذا الموقف بعمل محدود عمداً. يرسل الخادم 103 Early Hints مع بعض الحقول المتوقعة، ويواصل إعداد النتيجة، ثم يرسل الاستجابة النهائية. إذا فهم العميل العلاقة rel=preload أمكنه بدء جلب الهدف أثناء الانتظار.

اسم الحالة يرسم حدها. التلميح يعبّر عن احتمال، ولا يعلن نجاح الطلب أو استخدام المورد أو بقاء الحقل كما هو. إنه يفتح خياراً زمنياً، ولا يمنح المرسل سيطرة على المستقبل.

رسالة وسطية ونتيجة نهائية واحدة

يضع RFC 9110 103 ضمن الاستجابات المعلوماتية 1xx. يمكن لطلب واحد أن يتلقى عدة استجابات وسطية ثم استجابة نهائية. تنتهي 1xx عند نهاية قسم الحقول ولا تحمل محتوى أو حقولاً ختامية. ويجوز لوكيل المستخدم تجاهل استجابة معلوماتية لم يتوقعها.

يُلزم RFC 8297 العميل بألا يجعل تقييم الحقول المبكرة يؤثر في معالجة الاستجابة النهائية إلا في تحسين الأداء. إذا جاءت 302 فهي تحويل، وإذا جاءت 500 فهي خطأ؛ لا يحول تحميل سابق أياً منهما إلى 200.

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

أربعة أصحاب قرار في زمن قصير

يمتلك الأصل الحالة والحقول النهائية. لكنه ليس الجهة الوحيدة التي قد ترسل تلميحاً. يورد RFC 8297 مثال وسيط تخزين ينشئ 103 من حقول استجابة قديمة أثناء إعادة التحقق، ثم يمرر رسائل الأصل.

يمتلك المتصفح قرار التخمين. يمكنه التجاهل، أو استخدام ذاكرته، أو فرض ميزانية، أو خفض الأولوية، أو إسقاط الفائدة بعد تحويل. لا يستطيع حقل Link التحكم في مجدول العميل عن بعد.

تمتلك الاستجابة النهائية نتيجة الملاحة. ثم يمتلك المورد نتيجة مستقلة: حل الاسم، الاتصال، شهادة TLS، بيانات الاعتماد، حالة الاستجابة، النوع، التكامل وسياسة التخزين تحدد إن كانت هناك مادة قابلة للاستخدام.

يعرّف RFC 8288 الرابط بسياقه ونوع علاقته وهدفه وسماته. إنه بيان عن علاقة، لا مصادقة للهدف ولا ضمان لنجاح الوصول إليه.

يضيّق المتصفح الإشارة العامة بسياسة محلية

يعالج معيار HTML Early Hints في الملاحة. تتعامل الخوارزمية الحالية مع أول تلميح مبكر، وتتخلص منه إذا تبعه تحويل إلى أصل مختلف.

في هذه المرحلة تُعالج سمات as وcrossorigin وintegrity وtype فقط ضمن التحميل المسبق. تحتاج سمات أخرى إلى Document لم يُنشأ بعد. معالجة Link المبكر قبل Link النهائي وعناصر الصفحة ترتيب زمني، لا مرتبة سلطة.

يمكن لسياسة Content Security Policy مبكرة أن تقيّد الطلب التخميّني. وقد تمنع السياسة النهائية الأشد الصفحة من استخدام استجابة وصلت بالفعل. وقع الإنفاق الشبكي، لكنه لم يشترِ إذن الاستخدام.

ويحافظ معيار Fetch على الحد نفسه: يعالج 103 ثم يستمر في انتظار النتيجة النهائية. يبقى التحسين داخل دورة الطلب.

ذاكرة التخزين خبرة سابقة وليست حقيقة حاضرة

قد يظل رابط الأمس أفضل توقع لليوم، وقد يصبح خاطئاً بعد نشر جديد أو تخصيص أو تحويل. لذلك يجب حفظ مصدر التلميح.

ينبغي للقياس أن يميز بين التطبيق، وقاعدة الطرف الوسيط، وبيانات استجابة قديمة. تحفظ مجموعة 103 والمجموعة النهائية منفصلتين. وإذا اقترحت طبقات متعددة أهدافاً مختلفة، فالتكرار والتعارض دليلان تشغيليان لا ينبغي ضغطهما في عبارة «أرسل الخادم preload».

الوسيط يقدّم التوقع. العميل يقدّر ثمنه. الأصل يكمل الجواب. لا تنتقل سلطة واحد إلى الآخر لمجرد تعاقبهم.

المعنى مؤقت، أما الكلفة فواقعة

قد يفتح تلميح غير مستخدم اتصالاً، ويستهلك بيانات وطاقة ونافذة ازدحام، ويزيد حمل أصل خارجي، ويكشف اهتماماً بعنوان قبل اكتمال الملاحة. لا يعيد التحويل اللاحق الحزم التي خرجت.

لذلك لا تكفي أعداد 103. المطلوب ربط استلام التلميح، وبداية الطلب المبكرة، ونتيجة الشبكة أو الذاكرة، والمقارنة مع الحقول النهائية، واجتياز السياسة، والاستخدام الحقيقي داخل الصفحة. يعرض مكسب الزمن إلى جانب البايتات والطلبات والاتصالات غير المستخدمة.

التوافق يحتاج دليلاً أيضاً. يحذّر RFC 8297 من أن عميل HTTP/1.1 الذي يخلط 103 بالاستجابة النهائية قد يسيء فصل الرسائل التالية على اتصال دائم ويسبب كشفاً بين الأصول. قد يمتنع الخادم عن إرسال 103 عبر HTTP/1.1 إذا لم يعرف دعم العميل. يقلل HTTP/2 خطر التأطير هذا، ولا يضمن صحة التوقع.

يثبت سجل IANA أن الرمز 103 يعني Early Hints. لكنه لا يثبت مرور التلميح عبر الوسطاء أو تصرف المتصفح أو إعادة الاستخدام أو تحسن تجربة القارئ.

تشرح مبادئ Lu Heng حول الحد الأدنى من المواصفات والقرار المحلي والتبني الطوعي سبب بقاء الآلية رقيقة: المعنى المشترك هو أن الحقول مؤقتة وأن جواباً نهائياً سيأتي. أما التبني وتخصيص الموارد فهما لدى التنفيذ المحلي. وتطلب أولوية الشيفرة العاملة إثبات ما عبر السلك وما فعله العميل وما نتج للمستخدم.

اختبار الأمان الأخير هو تعطيل 103 مع بقاء الصفحة كاملة وصحيحة. إذا تعطلت، فقد استولى تحسين اختياري على سلطة لم يمنحها له البروتوكول.