أسئلة مقابلات HTTP, Fastify & Web Frameworks في Node.js
10 سؤال عن HTTP, Fastify & Web Frameworks من مسار Node.js. اقرأ الإجابة المختصرة لكل سؤال هنا، وافتح السؤال للشرح الكامل والأمثلة والأخطاء الشائعة والمصادر.
- مبتدئ
كيف يعمل خادم HTTP الأصيل (node:http) وما هي دورة حياة كائن IncomingMessage و ServerResponse؟
يعتمد node:http على خادم أحداث؛ حيث يمثل req تدفق قراءة (Readable) لبيانات الطلب، ويمثل res تدفق كتابة (Writable) لإرسال الترويسات وجسم الاستجابة.
اقرأ الشرح الكامل - مبتدئ
كيف تعمل الـ Middlewares في Express وما الفرق بين الـ Regular Middleware والـ Error-Handling Middleware؟
تنفذ الـ Middlewares بالتتابع عبر استدعاء next()؛ والـ Error Middleware يتميز بقبول 4 معاملات (err, req, res, next) ولا يُستدعى إلا عند تمرير خطأ إلى next(err).
اقرأ الشرح الكامل - متقدم
لماذا يتفوق Fastify في الأداء على أطر العمل التقليدية وكيف تعمل آلية Schema-Based Compilation؟
يعتمد Fastify على التجميع المسبق للمخططات (JSON Schema) عبر fast-json-stringify و find-my-way router، مما يلغي تكلفة التحليل الديناميكي ويسرع التسلسل النصي.
اقرأ الشرح الكامل - متوسط
كيف يطبق إطار عمل NestJS مبادئ الـ Dependency Injection وتنظيم الـ Modules؟
يعتمد NestJS على IoC Container ونظام الـ Decorators (@Injectable, @Module) لحقن الخدمات وإدارة دورات حياتها تلقائياً عبر Constructor Injection.
اقرأ الشرح الكامل - مبتدئ
ما أهمية التحقق من صحة المدخلات (Input Validation) باستخدام مكتبات المخططات مثل Zod في Node.js؟
يضمن مطابقة البيانات القادمة من العميل للأنواع والقيود المتوقعة قبل وصولها لمنطق الأعمال، ويمنع هجمات حقن البيانات والتلاعب بالحقول.
اقرأ الشرح الكامل - متوسط
ما هو مفهوم الـ Content Negotiation وكيف تتعامل مع ترويسات Accept و Content-Type؟
هو آلية تسمح للعميل بتحديد الصيغة المفضلة للبيانات (مثل JSON أو XML) عبر Accept، بينما تعلن Content-Type عن صيغة البيانات المرسلة بالفعل.
اقرأ الشرح الكامل - متقدم
كيف تصمم خادم WebSockets عالي الكفاءة باستخدام مكتبة ws وكيف تطبق آلية الـ Heartbeat (Ping/Pong)؟
تتم ترقية اتصال HTTP الأصلي إلى مقبس ثنائي الاتجاه، ويتم إرسال إشارات Ping دورية للتأكد من حيوية الاتصال وإغلاق المقابس الميتة (Zombie Connections).
اقرأ الشرح الكامل - متوسط
كيف تتعامل مع طلبات multipart/form-data ورفع الملفات بأمان في خوادم Node.js؟
يتم استخدام محلل تدفقي (مثل busboy أو multer) لفحص الـ boundaries وتدفق أجزاء الملفات مع فرض قيود صارمة على الحجم ونوع الامتداد.
اقرأ الشرح الكامل - متقدم
كيف تحمي خادم Node.js من هجمات Slowloris وكيف تطبق تحديد معدل الطلبات (Rate Limiting)؟
تحمي من Slowloris بتعيين مهل زمنية صارمة للترويسات (headersTimeout)، وتطبق Rate Limiting باستخدام خوارزمية Token Bucket ومخزن Redis مركزي.
اقرأ الشرح الكامل - متوسط
متى تفضل استخدام Server-Sent Events (SSE) على WebSockets وكيف تنفذها في Node.js؟
تفضل SSE عندما يكون تدفق البيانات في اتجاه واحد من الخادم للعميل (مثل الإشعارات وتدفق نصوص AI)، وتنفذ عبر اتصال HTTP مع ترويسة text/event-stream.
اقرأ الشرح الكامل