شغّل خادمًا على حاسوبك أنت وافهم لماذا لا يستطيع أحد غيرك رؤيته.
افتح هذا الدرس في Kodokonعندما تبني موقعًا، لن تنشره على الإنترنت بعد كل تعديل. بل تشغّل خادمًا على حاسوبك أنت، وتزوره بمتصفحك. ولهذا الجهاز، جهازك، اسم محجوز: localhost، أي حرفيًا "المضيف المحلي". وله أيضًا عنوان IP محجوز، 127.0.0.1، يعني دائمًا "أنا نفسي"، على أي جهاز في العالم.
لكن الحاسوب الواحد يستطيع تشغيل عدة خوادم في الوقت نفسه. فكيف تعرف إلى أيّها تتحدّث؟ عبر المنافذ. فإذا كان عنوان IP هو عنوان المبنى، فالمنفذ هو رقم الشقة: رقم بين 1 و65535 يحدّد البرنامج المفترض أن يردّ. وبعضها اصطلاحي: المنفذ 80 لبروتوكول http، والمنفذ 443 لـ https. وفي التطوير، كثيرًا ما نستخدم 3000 أو 5173 أو 8000. ويُكتب المنفذ بعد الاسم، مفصولًا بنقطتين رأسيتين: http://localhost:8000.
cd my-site
python3 -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...اترك نافذة الطرفية هذه مفتوحة: فما دام الأمر يعمل، يبقى الخادم يردّ. افتح الآن http://localhost:8000 في متصفحك، وسترى ملفات مجلد my-site. ولإيقاف الخادم، عُد إلى الطرفية واضغط Ctrl + C.
ولماذا كل هذا العناء، ما دام النقر المزدوج على index.html يفتح الصفحة أيضًا؟ لأن النقر المزدوج يفتح الملف على العنوان file:///C:/Users/...، لا على http://. وعدة ميزات في الويب ترفض رفضًا قاطعًا أن تعمل خارج بروتوكول http: الطلبات الموجّهة إلى خادم، ووحدات JavaScript، وبعض الخطوط. وستحصل على أخطاء محيّرة تختفي كأنها سحر بمجرّد أن تمرّ عبر localhost.
lsof -i :8000
COMMAND PID USER FD TYPE NODE NAME
python3 4821 sarah 3u IPv4 TCP *:8000 (LISTEN)