من منا لا يستخدم الإنترنت حتي ولو لمرة واحدة في اليوم؟! الكل يفعل تقريبا. فكلٌ منا عندما يريد البحث عن شئ، يقوم بالدخول علي احد متصفحي اﻹنترنت ثم يقوم بكتابة عنوان الموقع الذي يريد الوصول إليه (جوجل علي سبيل المثال) في شريط العنوان الخاص بالمتصفح ويضغط علي زر الانطلاق فيجد المتصفح قام بعرض الموقع. السؤال هنا هل فكر أحد ما فيما يحدث وراء الكوابيس لكي يحدث هذا ويُغرَض الموقع بالشكل الذي نراه.

فهم آلية عمل اﻹنترنت مهم جداً. الكثير من الناس عادة ما يقومون بفهم قشور هذه الآلية ولا يفهمون المبادئ التي علي أساسها تعمل التقنيات مع بعضها فهما تاماً مما يؤدي إلي جعل اﻷمور صعبة علي التفكير في تحسين أداء المواقع.

هذه ستكون سلسة من المساهمات التي يتم فيها شرح آلية عمل اﻹنترنت بصورة مبسطة للمبتدئين في مجال تطوير الويب.

هذا الجزء الأول من هذه السلسة بعنوان تصفح اﻹنترنت سأتحدث فيه عما يحدث في الوقت ما بين الضغط علي زر الانطلاق وعرض المتصفح للموقع.

هيا نبدأ!

العملية التي تتم في الوقت ما بين الضغط علي زر اﻻنطلاق وعرض المتصفح للموقع تنقسم إلي جزئين أساسيين هما:

  1. العثور علي عنوان IP الخاص بالموقع.

  2. الاتصال بالموقع وعرضه بالمتصفح.

(1) العثور علي عنوان IP الخاص بالموقع.

عندما تُدخِل عنوان الموقع (google.com علي سبيل المثال) في شريط العنوان بالمتصفح ثم تقوم بالضغط علي زر الانطلاق، يقوم المتصفح بالتحري عن عنوان IP الخاص بالموقع في أرشيفات DNS الخاصة بالمتصفح والتي تتواجد في الذاكرة المؤقتة للمتصفح لمدة تتراوح من دقيقتين إلي ثلاثين دقيقة وهي تعتبر فترة صغيرة جدا فمن الصعب العثور علي عنون IP الخاص بالموقع فيها، فيقوم المتصفح بإرسال رسالة إلي راوتر اﻹنترنت الخاص بك مضمونها "من يكون Google.com هذا؟ هل تعرفه؟" فيقوم الراوتر بالبحث في أرشيفات ذاكرته المؤقتة هو اﻵخر فإذا تم العثور عليه يرد علي المتصفح بعنوان IP الذي يبحث عنه المتصفح، أما إذا لم يجده فيقوم هو اﻵخر بإرسال نفس الرسالة إلي مزود خدمة اﻹنترنت لديك (STC, WE علي سبيل المثال) فيقوم هو اﻵخر بعملية بحث مكثف في أرشيفات DNS الخاصة به حتي يجد يرد DNS عليه: "أنا لا أعرفه لكن لدي عنوان IP الخاص به، هذا هو العنوان 172.217.3.27"، فيقوم مزود الخدمة الخاص بك بإعادة العنوان إلي الراوتر حتي يصل إلي متصفحك.

(2) الاتصال بالموقع وعرضه بالمتصفح.

بعدما يتحصل المتصفح علي عنوان IP، يقوم بإرسال HTTP request للخوادم الخاصة بالموقع يطلب فيه انشاء اتصال بالموقع. إذا ردت الخوادم بالموافقة، يرد المتصفح بطلب الكود الخاص بالموقع فترد الخوادم بإرسال إليه نسخه من HTML, CSS, JavaScript الخاصة بالموقع فيقوم المتصفح بعرضها حتي تراها كما يجب أن تكون.