موضوع اليوم خفيف الى حد ما. فهو يتعلق بأمر نعرفه جميعا :الأنترنت. فأنتم تقرأون موضوع اليوم بأستخدام أحدى خدمات الأنترنت. ومع ذلك فكثير من المعلومات اللتى يعرفها الأنسان حول هذا الأمر أنصاف معلومات. قسم منها صحيح و قسم مبنى على تصورات خاطئة. كما ان هذا الموضوع يحتوي على كثير من الأختصارات والمصطلحات الغير واضحة مثل www أو http أو https أو IP أو URL أو server أو HTML أو telnet أو ftp أو ssh فدعونا نلقى الضوء حول هذه الأشياء ونتعرف عليها بشكل أكبر.
دعونا نقر بداية ان هناك خطأ شائع. فالناس أجمالا عندما يتحدثون عن الانترنت فانهم يقصدون شيئا اخر وهو الويب www. وفي حقيقة الأمر فأن الأنترنت أكبر بكثير من الويب بينما الويب هى أشهر خدمة موجودة فيه فقط. بالمثل عندما أتحدث عن نادي برشلونة فيفهم الناس فريق كرة القدم. مع أن نادي برشلونة اكبر بكثير من فريق كرة القدم. فهناك نشاطات اخرى يشملها النادي بخلاف لعبة كرة القدم. فهناك لعبة الشطرنج مثلا. وكذلك الانترنت فهو شبكة الشبكات. ويمكننا تمثيله بشبكة الشوارع والطرق. ومن يخلط الأنترنت مع الويب كمن يلفظ الطريق لكنه يقصد سيارة تمر فى الشارع. فالانترنت يمكننا تقسيمه نظريا الى سبعة مستويات -كما يفعل نموذج OSI. وخدمة الويب هي فقط أحدي سكان الطابق السابع. وأحدى جيران الويب في الطابق السابع على سبيل المثال خدمة شهيرة وهي خدمة الرسائل الألكترونية E-Mail
وكلمة انترنت Internet كلمة مركبة من الكلمتين Interconnected networks . والمقصود بها أكبر أتصال لشبكات الكمبيوتر عبر العالم عن طريق بروتوكول IP اللذي سوف نتحدث عنه لاحقا. وهذه الشبكة أصلها أمريكى وتاريخها -كما هو الحال كثيرا فى ميدان الكمبيوتر- مرتبط بالأستخدامات العسكرية!
فيرجع الفضل للصورة اللتى نعرف عليها جهاز الكمبيوتر اليوم الى جهود الأنجليزي الان تورينج Alan Turing والأمريكى فون نويمان John von Neumann. وأتضح فيما بعد ان الأنجليزي الان تورينج كان قد صنع اول حاسب كهربائى من أجل كسر الشفرة الألمانية فى الحرب العالمية الثانية. أما فون نويمان فهومعماري الكمبيوتر اللذي صمم صورته اللتى لازال عليها حتى اليوم ولاكثر من سبعين سنة. لكن تم الكشف لاحقا أن الكثير من اعمال فون نيومان فى ميدان تطوير الحاسوب كانت من اجل مشروع القنبلة النووية. واللتى القيت منها أثنتان على اليابان فى الحرب العالمية الثانية.
وبعد الحرب العالمية الثانية ابتدأت الحرب الباردة بين الولايات المتحدة الأمريكية والأتحاد السوفيتى السابق. وابتدأ سباق التسلح. وأظهرت الحرب العالمية الثانية أهمية الأتصالات. فمن يملك شبكة أتصالات أكفأ يكون موقفه أفضل من خصمه. ومن يشل أتصالات خصمه يكون قد قضى عليه اكلينيكيا. ولذلك فى الحروب الحديثة فان اول ألاشياء اللتى تسعى الجبهات المتقاتلة لفعلها هى محاولة شل أتصالات الخصم. وقد كان الاتحاد السوفيتى فى البداية متفوقا على الولايات المتحدة الأمريكية تكنولوجيا بشكل واضح. فنجح في اطلاق اول قمر صناعى فى الفضاء اللذي كان يثير رعب الأمركيين كلما رفعوا رؤسهم الى السماء. بالاضافة الى ذلك كان للأتحاد السوفيتي تفوق نووي واضح. ولمجابهة هذا التطور سخر الامريكيون جهودا هائلة لتطوير انظمة الحاسوب لمحاولة رأب الصدع فى تكونولوجيتهم العسكرية. لكن بقت عندهم مشكلة اساسية. فقد كانت الترسانة الأمريكية النووية تتحكم فيها أجهزة الحاسوب وهنا ظهر هاجس: ماذا اذا قامت حرب نووية وكان الاتحاد السوفيتى سباقا ودمر شبكات التحكم الكمبيوترية المركزية للولايات المتحدة الأمريكية؟ اذن سيبقى السلاح النووي الأمريكى على الأرض هامدا لا يتحرك! هنا وكلت وزراة الدفاع الأمريكية هيئة أربا ARPA أو Advanced Research Projects Agency للبحث عن حل لهذه المعضلة
ووجدت اربا حلا جذريا للمشكلة. وهى ان الأتصالات بين اجهزة الكمبيوتر التابعة لوزارة الدفاع الأمريكة لا ينبغي أن تتم فقط عن طريق شبكات الكمبيوتر العسكرية بل وأيضا عن طريق أستخدام شبكة التليفونات العامة الموجودة حول العالم. فشبكة التليفونات الموجودة فى العالم لا يمكن تدميرها كلها فى نفس اللحظة. فلتخيل عمل شبكات التليفون يمكننا تذكر الأفلام السينمائية القديمة. ومن هم أكبر سنا يتذكرون كيف كانت تعمل خدمة التليفون سابقا أو ما كان يطلق عليه خدمة “الترنك”. وكان الأمر يتم على الصورة التالية: اذا اراد شخص ما فى المدينة أ ان يجرى اتصالا بشخص أخر فى المدينة ب فانه كان لا يستطيع أن يتصل به مباشرة كما هو الحال اليوم. ولكنه كان يتصل بمركز خدمة التليفون “الترنك” الموجود فى نطاقه ويخبرهم برغبته فى الأتصال بالمدينة ب. ثم ينهى المكالمة ويدع الأمر برمته فى عهدة الترنك اللذى ينظر هل لديه خط مباشر يصله بترنك المدينة ب فاذا كان هناك خط مباشر فانه يستخدمه والا فانه يبحث عن مدينة أخرى تقع فى الطريق بينه وبين المدينة ب ولديه معها خط اتصال مباشر ولتكن مثلا المدينة ج. هنا يتصل بترنك المدينة ج ويخبرهم انه يريد ان يتصل بالمدينة ب لكنه لا يملك خط اتصال مباشر. فعلى ترنك المدينة ج ان يتصل بترنك المدينة ب مباشرة أن أستطاع أو أن يضع الأمر مرة أخرى فى عهدة ترنك أخر حتى نصل فى النهاية الى المدينة ب. وفى كل مرة تتم فيها عملية اتصال يتم تأمين خط أتصال فى الخلفية بين الطرفين. ثم فى النهاية يتم الأيصال بالشخص اللذي هو هدف المكالمة وأخبار المتصل الأول بانه تم تأمين خط أتصال تليفونى مباشر بينه وبين الشخص المطلوب فى المدينة ب وبأمكانه الحديث معه الأن! لكن ماذا أذا كان ترنك المدينة ج معطلا او تم اعطابه عسكريا؟ هنا لاتوجد مشكلة فبأمكان ترنك المدينة أ ان يتصل بترنك أخر وهو ترنك المدينة د وطلب نفس الأمر منه. قد تكون المسافة أطول لكن الأتصال سوف يتم في النهاية. وهذا الامر مازال يحدث حتى اليوم. لكن الفرق ان الترنك اصبحا أتوماتيكيا لا يقوم أفراد بالعمل فيه ولكن تقوم أجهزة كمبيوتر بهذه المهمة فيتم الأتصال بسرعة فائقة ولا يشعر المتصل بعمليات تأمين الخط التليفونى اللتى تتم فى الخلفية.
وكانت طريقة عمل هيئة أربا مبنية على التعاون مع الجامعات الأمريكية. فتتم تشكيل شبكة فى عام 1969 ضمت أربع جامعات امريكية كانت نواة شبكة اربا نت ARPA-Net وبعد فترة وجيزة ضمت الشبكة العشرات من الجامعات الأمريكية. ثم بعد ذلك قامت وزراة الدفاع الأمريكة بانشاء شبكة اتصالات بديلة تقوم على نفس المبدأ وهى Mil-Net وتركت شبكة اربانت متاحة للجميع اللذي تحول أسمها بعد ذلك الى انترنت. وهناك ايضا تعبير يصف شبكات الكميبوتر اللتى تقوم على نفس تقنيات الأنترنت ولكنها شبكات خاصة وهو تعبير الأنترانت Intranet
اذن الأنترنت هو عبارة عن شبكة تصل اجهزة الكمبيوتر ببعضها ولا يهم أن كان هذا الأتصال عن طريق أسلاك أو عن طريق الهواء أو عن طريق وسط أخر! لكن ماذا بعد اقامة هذه الشبكة وتحقيق هذا ألاتصال؟ فكيف نستطيع أن نستغل ذلك؟ لاجابة هذا السؤال علينا أن نسأل أنفسنا ماذا يوجد على أجهزة الكمبيوتر أساسا؟ فى الحقيقة فأن السؤال الأخير هام جدا. فما يوجد على اجهزة الكمبيوتر في النهاية هى ملفات وبرامج. اذن ما قد نفكر فيه بعد اقامة هذه الشبكة وتحقيق الأتصال بين أجهزة الكمبيوتر المختلفة هو كيف نقوم بنقل الملفات بين الكمبيوترات المختلفة أو كيف نقوم بأستخدام برامج موجودة على اجهزة كمبيوتر بعيدة عنا ولكنها متاحة على الأنترنت؟ هنا تأتى خدمات الأنترنت المختلفة!!
يمكننا ان نلخص فلسفة أبتكار خدمات الانترنت بالصورة التالية: يجب اولا ان نحدد الرؤية. كيف نستغل شبكة الأنترنت لتحقيق خدمة ما وما هى هذه الخدمة. ثم نبدأ الخطوة الثانية وهى رسم تصور واضح ووضع الية محددة لكيفية تحقيق هذه الخدمة. وهنا نحصل على ما نطلق عليه البروتوكولات Protocol. ثم تأتى الخطوة الثالثة والأخيرة وهى كتابة برمجيات تتبنى الأليات السابقة وهذه البرامج هى ما يستخدمها المستخدم العادي فى النهاية. وفى كل الاحوال نجد دائما برامج مجانية تتيح لكافة المستخدمين الحصول على تلك الخدمة.
ومن الخدمات اللتى تم أبتكارها نذكر التالي: لنقل الملفات داخل شبكة كمبيوترية من هنا الى هناك تم اختراع خدمة ال ftp أو File Transfer Protocol ولأستخدام برنامج موجود على جهاز كمبيوتر بعيد عنى وكأنه موجود امامي تم ابتكار خدمة التيلنت Telnet واليوم يندر استخدام التيلنت ويستخدم عوضا عنها خدمة SSH أو secure shell اللتى تؤدي نفس الغرض لكنها تعطى أمانا أكثر حيث انها تقوم بتشفير البيانات المنقولة. ولأرسال ملف نصى قد يحتوى على ملفات رقمية الى مستقبل معين تم ابتكار خدمة الرسائل الألكترونية E-Mail. ثم هناك خدمات عديدة للمحادثة الفورية او Instant messaging وهناك خدمات للتواصل الصوتى أو ما يطلق عليه VoIP . الى أخر الخدمات العديدة الأخرى!
وماذا اذن عن خدمة الويب World Wide Web؟ لقد تم ابتكار خدمة الويب عام 1989 على يد الانجليزى تيم برنرز لي Tim Berners-Lee اللذي كان باحثا علميا في معهد سيرن. وكانت المشكلة اللتى تواجه الباحثين العلميين انهم يحتاجون الى مصادر معلومات كثيرة ومتنوعة. صحيح انها كلها متاحة عبر شبكة الكمبيوتر وبأمكان كل باحث ان يحصل عليها وينزلها على حاسوبه. لكن كان عليه ان يحدد أولا أين يقع ذلك المصدر تماما؟ ثم يقوم بتوصيل نفسه بالكمبيوتر اللذي يحتوى على ذلك المصدر. ثم عليه ان يعلم اين يقع ذلك الملف بداخل ذلك الحاسوب تماما ليمكنه الحصول عليه! وفكر لي فى تبسيط تلك العملية وجعل جميع المصادر متاحة فى مكان واحد!. فقلب فكرة لى يتلخص فى اللينك Link أو الرابط . اللذي يستطيع الانسان بنقرة واحدة عليه أن يصل الى ملف أخر موجود بداخل شبكة الكمبيوتر. وليس ذلك فحسب بل فكر لي ايضا فى عرض المحتويات بصورة تبدو متأثرة بشكل الصحف والمجلات المطبوعة. ويمكننا ان نقول ان لي ابتكر 3 أشياء بصفة اساسية من اجل تحقيق مشروع الويب. وهذه الأشياء الثلاثة هي مايلي:
اولا لغة ال HTML اللتى يتخيل فيه المرء نفسه كأنه رئيس تحرير احدى الصحف. حيث يقول انا أريد هنا عنوانا رئيسا فحواه كذا وعنوانا فرعيا اخر هنا فحواه كذا واريد هنا صورة مصدرها كذا. واريد هنا نص الموضوع. واريد هنا روابط متعلقة بالأمر. ومن يفهم هذه اللغة ويقوم بتنفيذ التعليمات الواردة فيها هو برنامج كمبيوتر نطلق عليه المتصفح Browser ومن امثلة المتصفحات انترنت اكسبلورر Internet Explorer او فايرفوكس Firefox او كروم Chrome او سافاري Safari الى اخره
الامر الثانى اللذي ابتكره لي هو العنوان الموحد أو ال URL أو Uniform Resource Locator. حيث بما أن هدفه كان ربط الملفات مع بعضها فكان لابد له من وسيلة لتعيين كل ملف موجود على الشبكة واعطائه علامة تميزه بشكل مطلق عما سواه من الملفات. فهى كالرقم القومى اللذى يميز كل مواطن فى الدولة عن غيره مثال ل URL هذا العنوان http://eltawil.org/sciencewonders/wp-content/uploads/2016/08/karazupa1.png . وهو عنوان لا يوجود مثيله في شبكة الأنترنت باجمعها وهو يعبر عن صورة موجودة فى مدونة روائع العلوم
اما الأمر الثالث فهو بروتوكول HTTP اللذي ينظم خدمة الويب برمتها فهو الية متخصصة فى تنزيل ملفات ال HTML والملفات الاخرى المتعلقة بها وسنرى لاحقا مثالا يتعلق بها الأمر بتفصيل أكبر.
اذن فكما يقوم الانترنت بربط الكمبيوترات مع بعضها تقوم خدمة الويب بربط الملفات مع بعضها لتنتج نسيجا عالميا لا مركزيا. وفى حقيقة الامر فانا اتعجب من الترجمة العربية ل world wide web على انها الشبكة العنكبوتية العالمية. ولا ادري ما علاقة العنكبوت بذلك الأمر؟! فكلمة web معناها غزل او نسيج. ولقد سألت ثلاثة اشخاص لغتهم الأم هى الأنجليزية عما اذا كانت كلمة ويب توحي اليهم بأى شئ له علاقة بالعنكبوت او شبكة عنكبوتية فاجمعوا جميعهم ان هذه ترجمة طريفة جدا. واحدهم قال لي ان هذه نكتة سيحيكها لمعارفه وأضاف ان هذا الشكل الشبكى غير خاص بالعنكبوت وحده بل ايضا تستخدم كلمة مشابهة لشبكة الشمع اللتى ينتجها عسل النحل وهناك حشرات اخرى كشرنقة دودة القز اللتى تنتج ايضا نسيجا شبكيا. واخر متخصص فى ميدان الانترنت عندما سألته عن هذه الترجمة ظن في البداية اني أمازحه ثم أجابنى باعتباره متخصص فى ميدان الانترنت أنه لا يرى قطعا اى علاقة لكلمة ويب بأى شئ له علاقة بالعنكبوت وحتى باعتباره مجرد شخص لغته الام هى الانجليزية لا يرى ان كلمة ويب تعنى شبكة عنكبوتية. فقط عندما يقول المرء نسيج العنكبوت يرتبط الامر بالعنكبوت. لكن النسيج هو النسيج كما قال لي. فقط شخص واحد بعد ان استغرب من الترجمة وقال انها طريفة جدا عاد وقال انها ترجمة ممتازة لان سلوك الويب يشبه سلوك العنكبوت.لكنى لا أتفق مع ذلك الرأي وذلك لثلاثة اسباب: مبدئيا فأن مألات الاشياء لا ينبغى ان تؤثر علي ترجمة أصولها. الامر الثانى اننا نرى مرة اخرى خلطا بين التطبيق الخاص والحالة العامة. فربما يتأثر البعض بمحركات البحث من امثال جوجل اللتى تبرمج برامجا معينة تسميها عناكب لأنها تذهب الى دهاليز الانترنت لجمع المعلومات. لكن هذا مجرد تطبيق خاص واستخدام معين من تطبيقات الويب العديدة. الأمر الثالث عندما نترجم الويب بالشبكة العنكبوتية فاننا نفقد شيئا مهما من المعنى الأصلى. حيث ان لي اراد ان يعبر عن شيئ لا مركزى. فهو نسيج لانعلم ما هى النقطة اللتى ابتدأنا منها الغزل وكأن لدينا لوحة كانفا. وذلك يختلف عن شبكة العنكبوت المركزية اللتى نري لها مركزا واضحا وحيوان مركزي هو من يتحكم فى غزل الشبكة. وهذا أختلاف كبير من وجهة نظري عن المعنى الأصلي.
دعونا الان نرى مثالا عمليا للكلام السابق. دعونا نرى ماذا يحدث عندما يطلب انسان صفحة مدونة روائع العلوم؟ سنجد انه تحدث على الاقل 28 خطوة في الخلفية حتى يحصل المرء على النتيجة المرجوة. لماذا 28 خطوة؟ اننا تحدثنا سابقا ان هناك 7 مستويات حتى وصول المعلومات الى مستخدم الأنترنت ونحن نمر بهذه السبعة مستويات 4 مرات. فدعونا نستعرض سريعا وفى ايجاز شديد جدا تلك العمليات. ولكن قبلها دعونا نتأمل فى ذلك العنوان http://eltawil.org/index.php
نجد أن العنوان يبدأ ب http وذلك لأعلان أننا نريد خدمة الويب. فربما يكون الكمبيوتر المقابل يتيح اكثر من خدمة فعندما يصله أسم الملف فقط فهو لن يدري ماذا نريد أن نفعل بالملف. هل نريد ان نحصل على الملف عن طريق خدمة www او خدمة ftp او شئ اخر. الامر يشبه اشخاصا يطيرون الى مطار دولة اجنبية. لكن الدولة الأجنبية لا تدرى لماذا أتى هؤلاء؟ هل هم قادمون ليدخلوا البلد؟ ام هل انهم قادمون ترانزيت يريدون فقط ان يغيروا طائراتهم. فهذه الأحرف الاولى تدل على الخدمة المرجوة. وبالتالي يمكن يتم توفير مسئول لينظر فى هذا الطلب وكيف يمكن تلبيته. وفى مثالنا فان المسئول عن تلبية رغباتنا سيكون سيرفر server متخصص فى تلقى طلبات خدمات الويب. اما هذه الاحرف :// فهى مجرد فاصل يأتى بعدها اسم الموقع اللذى نريد ان نذهب اليه وهو eltawil.org ومن هذا الموقع نريد ان نحصل على الملف index.php . وربما يعترض البعض انه لا يضطر دائما الى كتابة http ومع ذلك فأنه يصل الى هدفه. واجابة ذلك ان المتصفح اللذي نستخدمه يضيف هذه الأحرف من تلقاء نفسه اذا كانت غير موجودة.
ودعونا نبدأ اولا من المستوي السابع نزولا. اول خطوة تتم هو ان المتصفح يريد ان يعرف ماهو رقم ال IP الخاص بالموقع اللذي نريد ان نزوره. فيبحث فيما يشبه دليل التليفونات على هذا الرقم. وفى حالة الموقع tawil.org فان ال IP هو 109.237.140.10 . وفى حالة موقع الفيسبوك فان الرقم هو 173.252.89.132 . ويمكننا مثلا ان نزور موقع الفيسبوك عبر هذا العنوان. http://173.252.89.132 بل أنه هوالعنوان الحقيقى. اما فائدة الأسماء فأنها أسهل فى الحفظ من الأرقام . فلكم ان تتخيلوا ان لم تكن أسماء المواقع موجودة وعلينا أن نصل اليها مباشرة عن طريق أرقام ال IP فقط. ثم بعد ذلك يبدأ المتصفح في صياغة رسالة طبقا لبروتوكول HTTP ليحصل على النتيجة المرجوة. وهذه الرسالة لسان حالها يقول الأتى: سعادة السرفر المحترم المختص بال IP رقم 173.252.89.132 والواقف عند بوابه 80 برجاء موافاتى من موقع eltawil.org بالملف index.php وهو ملف مصاغ بلغة ال html . ولأرسال الملف الى فان رقم ال IP الخاص بي هو xx.xx.xx.xx . ربما تكون المفاجاء فى ان نعلم اننا أيضا عندما نستخدم الأنترنت يكون لدينا أيضا رقم IP خاص بنا وذلك شرط اساسى حتى يعرف السرفر العنوان اللذي ينبغى ان يرد عليه.
فى المستوي السادس يتم تحويل تلك الرسالة السابقة الى صورة رقمية تتكون فقط من صفر وواحد. وفى هذا المستوي قد يتم أيضا تشفير الرسالة اذا كنا نستخدم بروتوكول https وهذا أمر فى غاية الاهمية اذا كنا ننقل معلومات حساسة مثل كلمات الدخول السرية او ارقام بطاقات الأئتمان
المستوي الخامس لا يهمنا فى هذه المثال كثيرا وهو خاص بأنشاء وانهاء وادارة جلسات الأتصال بين المتصفح والسيرفر
المستوي الرابع يتم تفكيك الرسالة الاصلية الى قطع اصغر حيث يتم نقل تلك القطع الصغيرة المفككة الى الجانب الأخر حيث يتم تجميعها مرة اخرى هناك. والميزة من هذه العملية انه اذا حدث خطأ ما وهو امر وارد جدا ونحتاج الى ان نعيد عملية الأرسال فلانحتاج الى اعادة ارسال الرسالة الكبيرة كلها مرة اخرى و لكننا نعيد ارسال فقط القسم الصغير اللذى حدث الخطأ عنده.
المستوي الثالث يتعلق بشبكة الانترنت نفسها وهو يتعلق ببروتوكول ال IP فال 109.237.140.10 أين يقع؟ في الصين ام فى أوروبا ام فى مصر او لبنان؟ في هذا المستوي يتم تحديد الهدف وارسال الباقات بصوبه. فهو يشبه ما كان يفعله الترنك فى مثال التليفونات السابق
المستوي الثاني يتم تجهيز الرسائل لعملية النقل الفعلية . حيث ان وسيلة النقل الحقيقة قد تكون عبر الهواء فى صورة موجات كهرومغناطييسة او فى صورة صوتية عبر موديم. فيتم تغليف الرسائل الصغير فى باقات تساعدنا على اتمام هذه المهمة. وربما نفتت الرسائل الى احجام اصغر اذا كان حجم الباقات لا يسمح
المستوي الاول يتعلق بعملية النقل المادية نفسه حيث تنتقل البيانات عبر البحار والمحيطات حتى تصل الى هدفها في المستوي الأول على الجانب الاخر
هنا تمر البيانات مرة اخرى بالمستويات السبع مرة اخرى لكن من أسفل الى اعلى وبصورة عكسية. فما تم تفكيكه في الأول يتم تجميعه هنا وما تم تشفيره في السابق يعاد فك شفرته. حتى تصل مرة اخرى رسالة انجليزية الى السيرفر . فيقوم بتحضير الملف المطلوب حتى يمكن ارساله الى الطالب
ومرة اخرى تمر البيانات بالمستويات السبع حيث يتم تقطيع الملف وتشفيره وارساله عبر البحار والمحيطات حتى يعود الينا مرة اخرى فى المستوي الأول
هنا مرة اخرى تتصاعد البيانات فى المستويات السبعة حتى تصل الى المتصفح اللذى يظهر لنا الصفحة اللتى قمنا بطلبها.