انتقل إلى محتوى الدرس

Head-of-Line Blocking in HTTP/1.1 مشكلة تعطيل الطابور في HTTP/1.1

تتبّع مسيرة تطور أجيال بروتوكول HTTP الخمسة: من السطر الواحد في HTTP/0.9 وإضافة الرؤوس في HTTP/1.0 والاتصالات المستمرة في HTTP/1.1، إلى الإطارات الثنائية وتعدد التدفقات وضغط HPACK في HTTP/2، وصولاً إلى HTTP/3 فوق QUIC/UDP.
3 صفوف تعليمية
تكنولوجيا الويب
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

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

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

  • لماذا فشلت تقنية ؟ حاول المعيار السماح بإرسال عدة طلبات متتابعة، لكن الخادم ظل ملزماً بإرجاع الردود بنفس الترتيب المتسلسل الصارم، كما أساءت الخوادم الوسيطة التعامل معها فتم تعطيلها في المتصفحات.
  • الحل الالتفافي في المتصفحات (فتح 6 اتصالات متوازية): للتخفيف من هذا الاختناق، اضطرت المتصفحات إلى فتح ما يصل إلى 6 اتصالات منفصلة لكل نطاق، مما ضاعف استهلاك الذاكرة والمصافحات.
الصف 2 صورة توضيحية
مخطط معماري يقارن بين تعطيل الطابور التسلسلي في HTTP/1.1 وتعدد التدفقات في HTTP/2 فوق TCP واستقلالية التدفقات في HTTP/3 فوق QUIC/UDP
الصف 3 ملاحظة هامة