HTTP / 2 هي طريقة جديدة لل مما يجعل تحميل موقع الويب الخاص بك أسرع بكثير عن طريق القضاء على العديد من أوجه القصور المرتبطة بالإصدار الحالي من HTTP. أعظم شيء عن ذلك؟ ليس عليك أن تذهب إلى الكثير من الجهد للحصول عليه وتشغيله.

او هل انت؟

ما هو HTTP / 2؟

عندما تم تطوير HTTP1 و HTTP1.1 في الأصل ، كان الويب مختلفًا تمامًا عما هو عليه اليوم. كانت مواقع الويب تحتوي على موارد أقل (ملفات JavaScript وملفات CSS وصور) اليوم. لم تكن اتصالات الإنترنت سريعة للغاية ، ولم يكن المستخدمون من الصعب إرضائهم مع سرعة تحميل الموقع.

يبدأ المستخدمون في الحصول على أصابع حكة عندما يستغرق موقع ما أكثر من 3 ثوانٍ لإظهار استجابة.

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

سريع إلى الأمام اليوم. يتم قياس أوقات تحميل موقع الويب بالمللي ثانية بدلا من الثواني. يبدأ المستخدمون في الحصول على أصابع حكة عندما يستغرق موقع ما أكثر من 3 ثوانٍ لإظهار استجابة. في هذا النوع من الحالات ، تبدأ حالات عدم الكفاءة التي يتم حسابها بالمللي ثانية المرتبطة بالإصدارات الأصلية لبروتوكول HTTP في إحداث فرق حقيقي. لهذا السبب تناقش الكثير من المقالات كيفية جعل موقع الويب الخاص بك أسرع . لأن مللي ثانية مهمة.

الإصدار الجديد من HTTP ، والمعروف باسم HTTP / 2 يعالج مشاكل محددة معروفة من HTTP. وتتمثل أهدافها في معالجة عدد من المشكلات التي أصبحت أكثر وضوحًا مع تطور الويب إلى مواقع أكبر وأكبر مع العديد من ملفات CSS و JS وصور أكثر مما كان متوقعًا في الأصل.

ولكن ما الخطأ في HTTP1.x ، ولماذا ننفق الكثير من الجهد في جعله أسرع؟

مشاكل HTTP1.x

يحتوي HTTP1.x على عدد من المشاكل المتأصلة. في الواقع ، دعونا نمتنع عن وصفهم بالمشاكل. يحتوي HTTP1.x على عدد من الطرق التي يمكن أن تكون أكثر فاعلية.

  1. HTTP 1.x يستند إلى نص: في الأصل كانت الفكرة أن HTTP1.x يجب أن يكون قابلاً للقراءة من الناحية الإنسانية لذلك كان يستند إلى نص بالكامل. وبحسب التعريف ، فإن جميع البروتوكولات المستندة إلى النصوص لها أوجه قصور مرتبطة بها مثل المسافات البيضاء ، فواصل الارتباط ، الكتابة بالأحرف الكبيرة ، إلخ.
  2. يوجد ملف واحد فقط قيد النقل في أي وقت: تعتبر هذه واحدة من أكبر المشكلات في إصدارات 1.x من HTTP. فقط تخيل كونك رجل شحن قادر على تقديم حزمة واحدة فقط في كل مرة. يجب عليهم العودة إلى القاعدة في كل مرة يحتاجون فيها إلى توصيل الطرد التالي.
  3. هناك حاجة إلى مئات الطلبات لمواقع الويب اليوم: إن وجود مواضيع أكثر تعقيدًا يعني أن حجم مواقع الويب وعدد الموارد ينمو. وكذلك الوقت الذي يستغرقه تحميل كل مورد. تذكر "موظف التوصيل" الخاص بنا يجب أن يعود إلى القاعدة في كل مرة ، فهم غير قادرين على نقل أكثر من ملف واحد في كل مرة.
  4. كل اتصال عبارة عن عملية تقنية ثقيلة: بما أن المئات من الوصلات مطلوبة ، فإنها تبدأ في تجميع الحمل الجسيم. مع قياس وقت التحميل بالمللي ثانية ، يبدأ الوقت المشترك المطلوب لإنشاء اتصال لمئات الموارد في أن تصبح مهمة جدًا.

في كثير من الأحيان كان على مصممي الويب تنفيذ تدابير محددة للحد من أوجه القصور هذه. تهدف الحلول مثل CSS sprites و minification و دمج الملفات إلى التغلب على مشكلات تحميل مواقع الويب.

هذه هي - في جوهرها - الحلول بدلاً من الإصلاحات.

كيف يحل HTTP / 2 مشاكل HTTP1.x

HTTP / 2 تم تصميمها وتطورت من SPDY ، بروتوكول مصمم في جوجل تهدف إلى جعل الويب أسرع. يعالج مشاكل HTTP بالطريقة التالية

  1. الغرض من HTTP / 2 هو استهلاك الأجهزة (متصفح الويب الخاص بك وخادم الويب الخاص بك على الويب) بدلاً من البشر. إنه ثنائي بدلاً من نص ، مما يجعله أكثر كفاءة بطبيعته. يكون نقل البيانات وتحليلها أسرع باستخدام البروتوكولات الثنائية.
  2. يمكن نقل ملفات متعددة في نفس الوقت على نفس الاتصال . تم تنفيذ الإصلاحات بحيث يمكنك موارد خطوط أنابيب على نفس الاتصال. وبدلاً من الاضطرار إلى فتح اتصال جديد في كل مرة (يقوم موظف التوصيل لدينا بالعودة إلى القاعدة) ، يمكن تنفيذ جميع الموارد على نفس الاتصال (يقوم موظف التوصيل لدينا بتفريغ كل شيء في شاحنة صغيرة ويأخذ كل شيء في رحلة واحدة).
  3. دفع الخادم لإرسال الملفات التي سيتطلبها المتصفح. في HTTP1.x ، يكون مستعرض الويب هو الذي يطلب من خادم الويب الحصول على الموارد التي يحتاجها. تسمح خدمة HTTP Push (التي يتم تنفيذها كجزء من HTTP / 2) للخادم بالبدء في إرسال الموارد التي يعرف أنها ستحتاج إلى متصفح الويب. على سبيل المثال ، يمكنك توجيه الخادم بعدم الانتظار حتى يطلب المتصفح ملفات CSS و JS وموارد أخرى التي يحتاج إليها المتصفح على أي حال.
  4. HTTP packet Header والتحسينات الأخرى - هذه تحسينات فنية تم تصميمها لتحسين الكفاءة الفعلية لعمليات النقل

ما المطلوب لتمكين HTTP2؟

من خلال عدم دعم بروتوكول HTTP / 2 عبر الاتصالات غير المشفرة ، فإن مالكي مواقع الويب يتم تسليحهم بقوة لتنفيذ HTTPs لموقعهم على الويب.

بالعودة إلى بداية المقالة قلنا أنه لا يلزم بذل جهد كبير من جانبك لتمكين HTTP / 2. يعد تمكين HTTP / 2 أمرًا يجب القيام به على مستوى خادم الويب. تحتوي معظم خوادم الويب مثل Apache و Nginx و IIS وغيرها من خوادم الويب الرئيسية على دعم HTTP / 2.

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

الصيد؟ شهادات آمنة

ربما كانت الأمور جيدة جدًا لدرجة يصعب تصديقها. لقد ناقشنا للتو كيفية قيام خوادم الويب بالفعل بدعم HTTP / 2 بالكامل.

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

من خلال عدم دعم بروتوكول HTTP / 2 عبر الاتصالات غير المشفرة ، فإن مالكي مواقع الويب يتم تسليحهم بقوة لتنفيذ HTTPs لموقعهم على الويب.

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

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

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

هل لا تزال تقنيات التحسين الأخرى ضرورية؟

نعم و لا.

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

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

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