العودة
‏200 ميلي ثانية: صفحة تفاعلية تتبع رحلة طلب HTTP واحد حتى النهاية
SiTech Team2 წთ. საკითხავი

‏200 ميلي ثانية: صفحة تفاعلية تتبع رحلة طلب HTTP واحد حتى النهاية

صفحة «200 Milliseconds» من thenodebook.com ترافق طلب HTTP واحد طوال 211.4 ميلي ثانية — من نقرة في مقهى في سان فرانسيسكو إلى ظهور تأكيد الطلب.

ترافق صفحة «200 Milliseconds» التفاعلية من thenodebook.com طلب HTTP واحدًا طوال حياته كاملة، 211.4 ميلي ثانية: صباح الثلاثاء عند الساعة 9:41 يضغط أحدهم زر Buy في مقهى بسان فرانسيسكو، وبعد 211.4 ميلي ثانية تظهر على الشاشة عبارة «Order confirmed». ولم يلحظ من نقر أي تأخير. الساعة في أعلى الصفحة دقيقة وتتوقف عند t = 0.211400 ثانية؛ وعندما يتوقف السرد لدرس قصير تتجمّد الساعة ثم يعود الزمن إلى الجريان.

المسار

يمر الطلب بسبع محطات: الحاسوب المحمول على شبكة واي فاي في المقهى، ونقطة الوصول التي تستقبل الإشارة اللاسلكية وتنقلها عبر سلك، ومزود الإنترنت الخاص بالمقهى، ونحو 4,700 كيلومتر من الألياف الزجاجية بين سان فرانسيسكو وأشبورن في فرجينيا، وموازِن التحميل الذي خلفه أربع عمليات Node.js، وعملية الخادم نفسها (PID 1447، شُغّلت قبل 23 يومًا)، وقاعدة بيانات PostgreSQL على مسافة 0.35 ميلي ثانية. وعند عرض التأكيد يكون الطلب وردوده قد عبرا أمريكا الشمالية ست مرات ومرّا بنحو أربعين آلة تشغّل مئة مليون سطر من كود الآخرين.

إلى أين تذهب الساعة

في الميلي ثانية الخمس الأولى يكون الأمر عتادًا ومحاسبة متصفح: تغيّر في السعة على لوحة اللمس يرفع مقاطعة (interrupt)، ثم ينقل مشغّل HID وخادم النوافذ وعملية المتصفح في Chrome الحدث إلى مُصيّر معزول، حيث يحدد اختبار الإصابة زر Buy المدفون على ست طبقات. بعدها يفوت fetch المتجه إلى ‎/api/checkout المخابئ الثلاثة — الذاكرة وservice worker والقرص — لأن طلبات POST لا تُخزَّن. ولا يوجد في تجمّع المنافذ اتصال بـ api.thenodebook.com، فيدفع الطلب تكلفة «البداية الباردة»: مصافحات TCP وTLS بواقع 62 ميلي ثانية لكل جولة تستهلك 127 من أصل 211.4. ويتحول الطلب النصي المكوَّن من 203 بايت إلى سجل TLS بحجم 225 بايت ويسير في الشبكة بما يقل قليلًا عن 300 بايت؛ أما العناوين فتبقى مقروءة في كل محطة لأن نحو أربعين آلة يجب أن توجّهه.

بداية باردة مقابل دافئة

التوزيع المنشور للبداية الباردة: التهيئة 7 ميلي ثانية، المصافحات 127، الطيران والرسم 74، الخادم 3. أما الطلب الثاني على الاتصال نفسه المبقى مفتوحًا فيستغرق نحو 95 ميلي ثانية — المتصفح 5، عبور واحد 62، الخادم 3، الرسم 25 — لأن المنفذ المفتوح وتذكرة الجلسة يزيلان المصافحات تمامًا. وبين الفصول توقف الصفحة الساعة لتشرح بإيجاز المقابس (sockets) والمنافذ والتوجيه anycast وملفات SYN والتشفير المُوثَّق.

SSiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.