بروتوكول HTTP / 2

وصف تفصيلي لكيفية عمل بروتوكول HTTP / 2

أقترح قراءةالبرنامج التعليمي HTTPأول

HTTP / 2 هو الإصدار الحالي من بروتوكول HTTP. تم إصداره في عام 2015 من قبل لجنة IETF (فرقة عمل هندسة الإنترنت) ، وقد تم اعتماده الآن على نطاق واسع بفضل ميزاته الفريدة.

يعتبر HTTP / 2 أكثر أداءً من HTTP / 1.1 ، وهو الإصدار الأخير من HTTP الذي كان متاحًا في ذلك الوقت.

لقد كان مطب السرعة الذي يقدمه HTTP / 2 جذابًا للغاية بحيث تم اعتماده بسرعة كبيرة - مع تغيير بسيط في خادم الويب (نظرًا لأن HTTP / 2 متوافق مع الإصدارات السابقة بنسبة 100٪ مع HTTP / 1.1) ، فإن مواقع الويب وتطبيقات الويب الخاصة بك تعمل الآن بشكل أسرع تلقائيًا ، وهذا بدوره مفيد للمستخدمين وأيضًا لأغراض تحسين محركات البحث (حيث تعد السرعة عاملاً حاسمًا في الترتيب).

كيف يمكن أن يكون HTTP / 2 أسرع بكثير من HTTP / 1.1؟ الأسباب كثيرة ، وكلها موجهة نحو تقليل أوجه القصور في الإصدار السابق ، وإدخال ميزات يمكن أن تتيح للمتصفحات أن تكون أكثر قدرة على تقديم الموارد بشكل أسرع.

الميزات الرئيسية للإصدار الجديد من البروتوكول هي:

  • الطلب والاستجابة مضاعفة
  • ضغط فعال لرؤوس HTTP
  • دفع الخادم
  • اتصال ثنائي

مضاعفة

قبل HTTP / 2 ، يمكن تقديم استجابة واحدة فقط في كل مرة لكل اتصال TCP.

TCP هو البروتوكول الأساسي الذي يتم بناء HTTP فوقه. يبقى TCP في طبقة النقل ، بينما HTTP على مستوى التطبيق.

تم تمكين تعدد إرسال الطلب / الاستجابة بواسطة HTTP / 2 أعلى اتصال TCP واحد ، مما يسمح للخادم بخدمة طلبات متعددة بنفس الاتصال مما يؤدي إلى اتصال أسرع بكثير.

هذا هو التغيير الفردي الذي سيكون مفيدًا جدًا لتطبيقك ، وسيؤدي إلى تقادم العديد من تقنيات التحسين ، بما في ذلك الصور المتحركة (التي تُستخدم لدمج عدة صور في صورة واحدة ، ثم يتم "فك تعدد الإرسال" باستخدام تقنية CSS خاصة ) وتقسيم المجال ، وهو اختراق آخر يستخدم لمنع المتصفح من تحديد عدد الاتصالات المتزامنة لنفس المجال.

ضغط الرؤوس

يمكن أن تنمو رؤوس HTTP على الصفحات والموارد بشكل كبير ، مع الأخذ في الاعتبار الاستخدام العادي لملفات تعريف الارتباط وقيم الرأس الأخرى. يتيح الضغط لـ HTTP أن يكون له أثر أخف ، مما يقلل من كمية البيانات المتبادلة بين العميل والخادم.

دفع الخادم

دفع الخادم هو ميزة تسمح بإرسال استجابات متعددة لطلب واحد. نظرًا لأن الخادم يعرف أنه عند طلب مورد ، سيطلب العميل بعد ذلك موارد تكميلية أخرى (فكر في CSS و JS والصور المرتبطة بصفحة) يمكن للخادم أن يقرر إرسالها على الفور.

بدلاً من إرسال HTML ، في انتظار قيام المتصفح بتحليلها وإطلاق طلبات أخرى للحصول على الأصول ، يمكن للخادم دفعها تمامًا.

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

لاحظ أن دفع الخادم يمكن أن يكون له عيوبه الخاصة أيضًا - على سبيل المثال ، يمكنك المخاطرة بإرسال الكثير من البيانات إلى العميل التي قد لا تكون مطلوبة (ربما تكون متاحة بالفعل على العميل كمخزن مؤقت) ، لذا استخدم بحذر

الاتصال الثنائي

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

ما هو تطور المستقبل؟

HTTP/3قيد التطوير ، وسيتم اقتباسه منHTTP فوق QUIC، مشروع تجريبي.

QUIC هو بروتوكول يعتمد على UDP (بدلاً من TCP) في طبقة النقل ، مما يعني أن HTTP / 3 سيعتمد على مكدس تقني مختلف تمامًا مقارنة بـ HTTP / 2 و HTTP / 1.x.


المزيد من دروس الشبكة: