كما هو موضح في موسوعة بايدو:
بروتوكول نقل النص التشعبي (HTTP) هو بروتوكول بسيط للطلب والاستجابة يعمل عادةً فوق TCP. وهو يحدد نوع الرسائل التي قد يرسلها العميل إلى الخادم ونوع الاستجابة التي يتلقاها. يتم تقديم رؤوس رسائل الطلب والاستجابة في نموذج ASCII [9] محتوى الرسالة له تنسيق يشبه MIME. كان هذا النموذج البسيط مسؤولاً عن النجاح المبكر للويب لأنه جعل عملية التطوير والنشر واضحة للغاية.
إذا كنت قد تعلمت أساسيات JavaSE، فيجب أن تكون على دراية ببرمجة الشبكة،
فلا بأس إذا لم تكن قد تعلمت ذلك، ودعني أخبرك:
1.1. بروتوكول الاتصال بالشبكة
اليوم في عام 2022 أصبحت الشبكات روتينًا يوميًا للناس، سواء كان ذلك رسائل البريد الإلكتروني أو الرسائل الفورية مع الأصدقاء أو مقاطع الفيديو الترفيهية القصيرة... ويمكن القول أنه يمكننا توصيل أجهزة كمبيوتر متعددة من خلال شبكات الكمبيوتر.
تقوم شبكات الكمبيوتر بتوصيل أجهزة كمبيوتر متعددة ضمن شبكة من خلال وسائط النقل، ومرافق الاتصالات، وبروتوكولات اتصال الشبكة، مما يحقق مشاركة الموارد ونقل البيانات.
ومع ذلك، عندما تتصل أجهزة الكمبيوتر على نفس الشبكة وتتواصل، يجب عليها الالتزام بقواعد معينة في شبكات الكمبيوتر، تسمى قواعد الاتصال والاتصال هذه ببروتوكولات اتصال الشبكة:
يتم تنفيذ بروتوكول http الذي نتحدث عنه هنا بناءً على tcp. أحد السيناريوهات الشائعة لتطبيق http هو قيامك بإدخال سلسلة من العناوين في المتصفح ثم إرجاع صفحة ويب.
1.2 عنوان IP ورقم المنفذ
لتمكين أجهزة الكمبيوتر الموجودة في الشبكة من الاتصال، يجب تعيين رقم تعريف لكل كمبيوتر. يمكن استخدام رقم التعريف هذا لتحديد الكمبيوتر الذي يتلقى البيانات أو الكمبيوتر الذي يرسل البيانات.
تحقق من عنوان IP لجهاز الكمبيوتر الخاص بك على الشبكة المحلية (LAN)، اضغط على WIN+R على جهاز الكمبيوتر الذي يعمل بنظام Windows وأدخل cmd للدخول بسرعة إلى
ipconfig لوحدة التحكم.
يمكنك الاتصال بالكمبيوتر المحدد من خلال عنوان IP، ولكن إذا كنت تريد الوصول إلى أحد تطبيقاتك على الكمبيوتر المستهدف، فستحتاج أيضًا إلى تحديد رقم المنفذ.
على سبيل المثال، MySQL's 3306، TomCat's 8080
يوفر Node.js وحدة http. تُستخدم وحدة http بشكل أساسي لبناء خوادم وعملاء HTTP. لاستخدام خادم HTTP أو وظائف العميل، يجب عليك استدعاء وحدة http.
2.1، التراكم السميك (مقدمة مفصلة، مقدمة مفصلة عن أساليب الكائن المستخدمة، عملية بناء خدمة http بأكملها)
مقدمة العملية:
استخدم أولاً طريقة createServer() لتسجيل كائن الخادم،
ثم استخدم كائن الخادم هذا لاستدعاء on( ) لمراقبة الأحداث ومعالجتها،
قم باستدعاء طريقة الاستماع () لربط رقم المنفذ
للبدء:
يقوم أي تطبيق خدمة شبكة دائمًا بإنشاء كائن خدمة أولاً. في NodeJS، يمكننا استخدام طريقة createServer لتحقيق ذلك،
// قم أولاً باستيراد وحدة http const http = require('http'); // إنشاء كائن خدمة http const server = http.createServer();
كائن الخادم الذي تم إرجاعه بواسطة مُنشئ createServer هو باعث للحدث هنا، يتم استخدام كائن الخادم الذي تم إنشاؤه لمعالجته باستخدام طريقة on () الخاصة به يعالج. بهذه الطريقة، عندما يتم إرسال طلب http، يمكننا معالجته.
// قم أولاً باستيراد وحدة http const http = require('http'); // إنشاء كائن خدمة http const server = http.createServer(); // ربط الحدث الذي يستمع إليه server.on('request', (request, Response) => { // آمن دائمًا أن الأشياء الجيدة على وشك الحدوث! });
لقد قدمنا (عنوان IP + المنفذ) من قبل عندما يكون جهاز الكمبيوتر الخاص بنا متصلاً بالإنترنت، سيقوم جهاز التوجيه تلقائيًا بتعيين عنوان IP لنا من خلال DHCP، ولكن إذا أردنا الوصول إلى البرنامج المحدد على الكمبيوتر، فيجب علينا ذلك. لديها أيضا رقم المنفذ.
للوصول إلى البرنامج المحدد على الكمبيوتر، نحتاج أيضًا إلى استخدام طريقة الاستماع (). ما عليك سوى استخدام server.listen() لتمرير رقم المنفذ كمعلمة إلى طريقة الاستماع كمنفذ الاستماع.
// قم أولاً باستيراد وحدة http const http = require('http'); // إنشاء كائن خدمة http const server = http.createServer(); // ربط الحدث الذي يستمع إليه server.on('request', (req, res) => { // محتوى هذه الوظيفة هو مجرد استدعاء صغير لمعلمة الدقة لتسهيل تشغيل البرنامج // اكتب رأس الاستجابة (لن يتعرف عليه المتصفح إذا لم تكتبه) res.writeHead(200,{'Content-Type':'text/html;charset=UTF8'}); // إرسال بيانات الاستجابة res.end("<h1>مرحبًا بك في استخدام Node.js لبناء الخدمات</h1>"); }); // ربط رقم المنفذ server.listen(8888);//
تقوم
وحدة التحكم بطباعة العنوان لتسهيل التصحيح السريع console.log('تم تشغيل خدمة http الخاصة بك على http://127.0.0.1:8888/');
إن العرض التوضيحي للكود أعلاه مفصل للغاية، ولكن في التطوير الفعلي، لا يُنصح بكتابته خطوة بخطوة، فهو مرهق للغاية.
بعد ذلك، اتبع المؤلف ودعنا نواصل تحسين الكود لجعله أكثر قوة وإيجازًا.
2.2، شعر رقيق (البساطة هي الملك)، أنيق للغاية!)
عملية تسجيل الكائنات خطوة بخطوة مرهقة للغاية. هنا نستخدم طريقة صغيرة وجميلة لتنفيذ واجهة http:
const http = require('http'). ); خادم ثابت = http.createServer(function(req,res){ // نعتقد دائمًا أن الأشياء الجيدة على وشك الحدوث}).listen(8080);
عندما يصل طلب HTTP إلى الخادم، يتم تنفيذ الوظيفة التي تم تمريرها في createServer تلقائيًا. لذلك تسمى هذه الوظيفة أيضًا بوظيفة معالجة الطلب. يمكننا تمرير وظيفة رد اتصال الاستماع للحدث مباشرة، ثم النقر فوق طريقة الاستماع () لربط رقم المنفذ مباشرة.
لكن هذا ليس جيدًا بما يكفي، نعم، يمكن تعديل وظيفة رد الاتصال المذكورة أعلاه باستخدام وظيفة السهم لجعلها أكثر جمالًا.
const http = require('http'); خادم ثابت = http.createServer((req,res) => { // آمن دائمًا أن الأشياء الجيدة على وشك الحدوث}).listen(8080);
بالطبع
هذا
ليس جيدًا بما فيه الكفاية
يمكن أن يكون أفضل!
يقوم createServer() مباشرة بحل كل شيء:
var http = require('http') // إنشاء خادم http.createServer( (req, res) =>{ // صدق دائمًا أن الأشياء الجيدة على وشك أن تُرسل}).listen(8888);
بعد رؤية هذا، تهانينا على البدء في استخدام وحدة http الخاصة بـnodeJS. في هذه اللحظة، لقد أتقنت المهارات التالية:
يرجى الاستمرار في متابعة المؤلف. بعد ذلك، سنتعلم كيفية