وصف تفصيلي لكيفية عمل بروتوكول 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.
المزيد من دروس الشبكة:
- مقدمة في WebSockets
- كيف تعمل طلبات HTTP
- قائمة رؤوس طلبات HTTP
- قائمة رؤوس استجابة HTTP
- HTTP مقابل HTTPS
- ما هو RFC؟
- بروتوكول HTTP
- بروتوكول HTTPS
- دليل curl لطلبات HTTP
- التخزين المؤقت في HTTP
- قائمة رموز حالة HTTP
- ما هو CDN؟
- بروتوكول HTTP / 2
- ما هو الميناء
- DNS ، نظام اسم المجال
- بروتوكول TCP
- بروتوكول UDP
- مقدمة لواجهات برمجة تطبيقات REST
- كيفية تثبيت شهادة SSL محلية في macOS
- كيفية إنشاء شهادة SSL محلية
- كيفية تكوين Nginx لـ HTTPS
- وكيل عكسي بسيط لـ nginx لخدمة تطبيقات Node.js متعددة من مجلدات فرعية
- ما هو عكس الوكيل؟