في خطوة لافتة لتحسين أداء تطبيقاتها، تمكنت شركة Delivery Hero، عملاق توصيل الطعام العالمي، من خفض زمن الاستجابة الكلي لتطبيقاتها بنسبة 17%. جاء هذا الإنجاز بعد انتقال الشركة لمعظم قاعدة مستخدميها إلى بروتوكول HTTP/3، وذلك بمساعدة كبيرة من شبكة توصيل المحتوى (CDN) الخاصة بـ Cloudflare. هذا التحسين، الذي قدمه مهندس الشركة الفيس تشيديرا في مؤتمر P99 2026، أظهر كيف يمكن للتقنيات الحديثة أن تحدث فرقاً كبيراً في تجربة المستخدم، خصوصاً في الأسواق ذات الاتصال الضعيف.
سرعة HTTP/3 على المحك
لطالما وُعد HTTP/3 بتقديم أداء أسرع للويب مقارنةً بـ HTTP/2، وقد أثبتت تجربة Delivery Hero ذلك. البروتوكول الذي قدمته فرقة عمل هندسة الإنترنت (IETF) رسمياً في عام 2022، يمثل قفزة نوعية في طريقة اتصال المتصفحات والموارد الأخرى بالخوادم عبر الإنترنت.
يكمن الاختلاف الجوهري لـ HTTP/3 في اعتماده على بروتوكول QUIC (Quick UDP Internet Connection) الذي طورته Google، بدلاً من بروتوكول التحكم في الإرسال (TCP) التقليدي. هذا التحول يعني أن HTTP/3 مبني على User Datagram Protocol (UDP)، مما يتيح له سرعة أكبر من خلال تقليل، وفي بعض الأحيان إلغاء، الرحلات ذهاباً وإياباً اللازمة لتأمين الاتصالات. كما يزيل البروتوكول الجديد مشكلة «حجب مقدمة الصف» (head-of-line blocking) التي كانت تعيق HTTP/2، وذلك بإرسال الحزم في تدفقات متعددة.
تحديات التطبيق وحلولها
وجد مهندسو Delivery Hero أن إعداد HTTP/3 على جانب الخادم كان سهلاً بشكل مدهش، خصوصاً أنهم يستخدمون Cloudflare CDN، مما تطلب إعادة تهيئة بسيطة. أما على جانب العملاء، ومعظمهم من مستخدمي الهواتف المحمولة، فكان الوضع مشابهاً؛ حيث تدعم Apple بروتوكول HTTP/3 منذ iOS 15، ومعظم المتصفحات تدعمه افتراضياً.
لكن Android شكل تحدياً أكبر. استخدم المهندسون مكتبة Cronet من Google لطبقة الشبكة. في البداية، استخدموا Cronet Transport for OkHttp لتقليل إعادة كتابة الكود الموجود. ومع أن Cronet ساعد في نشر HTTP/3 وخفض إخفاقات الطلبات على مستوى الشبكة، إلا أنه جاء مع مشكلة: استغرق محرك Cronet حوالي 800 مللي ثانية للتهيئة في P90، مما أكل جزءاً من فوائد السرعة التي يقدمها HTTP/3 بتقنية 0-RTT.
لحل هذه المشكلة، قام فريق Delivery Hero بتطوير نسخة معدلة من الكود الخاص بهم باستخدام مكتبة تُدعى OKCronet. كما أجروا أعمالاً هندسية إضافية، شملت تداخل تهيئة Cronet مع مهام خلفية أخرى. هذه الجهود أسفرت عن تحسن كبير، حيث تم خفض زمن الاستجابة في P95 من 1.2 ثانية إلى 120 مللي ثانية، محققين تحسناً بمقدار 10 أضعاف في زمن استجابة القراءة.
بشكل عام، تمكن الفريق الهندسي من نقل 95% من المستخدمين إلى HTTP/3، بينما عادت الأجهزة التي لا تستطيع استخدام البروتوكول (بسبب حجب الشبكات لحركة UDP) تلقائياً إلى HTTP/2. وقد أدى ذلك إلى خفض زمن استجابة المصافحة بين التطبيقات والخادم بنسبة 51%.
ومع ذلك، لا يزال هناك عقبة واحدة: بعض الشاشات الثانوية في التطبيقات واجهت مشكلات في زمن الاستجابة في أسواق معينة معروفة بأنها عرضة لفقدان الحزم، مثل باكستان. عزى مهندسو Delivery Hero المشكلة إلى خوارزمية التحكم في الازدحام التي تختارها Cloudflare لـ HTTP/3، وهي Cubic، التي لم تتعامل جيداً تاريخياً مع فقدان الحزم. عندما اختبروا بعض حركة المرور الخاصة بهم مع خوادم Google التي تدعم HTTP/3 وتستخدم خوارزمية BBR (Bottleneck Bandwidth and Round-trip propagation time)، لم تحدث مشكلة فقدان الحزم. وتعمل Delivery Hero حالياً مع Cloudflare لحل هذه المشكلة.
ماذا يعني هذا للمطورين؟
نرى أن قصة Delivery Hero تؤكد بوضوح أن تبني HTTP/3 لم يعد خياراً ترفياً، بل ضرورة حتمية لتحقيق أداء عالٍ لتطبيقات الويب والجوال، خاصة تلك التي تستهدف جماهير عالمية تعاني من تفاوت في جودة الشبكة. بالنسبة للمطورين، يعني هذا أهمية استكشاف ودراسة HTTP/3 جيداً.
يتعين على المطورين التركيز على تحسين تطبيقاتهم من جانب العميل، على غرار ما فعلته Delivery Hero مع Cronet، لضمان الاستفادة الكاملة من ميزات البروتوكول مثل 0-RTT. كما يجب الانتباه إلى اختيار خوارزميات التحكم في الازدحام المناسبة، والتي قد تختلف فعاليتها باختلاف ظروف الشبكة والمنطقة الجغرافية، لضمان تجربة مستخدم سلسة في جميع الظروف.
المصدر: theregister.com