من الرابط إلى الصفحة: DNS والرحلة الكاملة
درس 2 من 3
2من الرابط إلى الصفحة: DNS والرحلة الكاملة
الصورة الكبيرةالبشر يحفظون الأسماء والأجهزة تحتاج أرقامًا. DNS هو دليل الهاتف الذي يترجم بينهما، ويُسأل ملايين المرات كل ثانية.
ماذا تشاهد في الرسم: خمس محطات في أقل من ثانية. كل محطة لها درسها، وهذا الدرس يربطها في رحلة واحدة.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
حين تقول للسائق «خذني لمطعم البيك في الحمراء» يحتاج الإحداثيات. يسأل تطبيق الخرائط (DNS) فيعطيه الموقع، ثم يقود (الاتصال)، ويتأكّد أن المكان هو المطعم الصحيح لا مطعمًا مزيّفًا (TLS)، ثم تطلب الوجبة (HTTP) وتأكلها (العرض).
الحلّ (resolution): المتصفح ← ذاكرة النظام ← المحلّل التكراري لمزوّد الخدمة ← خوادم الجذر ← خادم النطاق العلوي (.com) ← الخادم الموثوق للنطاق، الذي يعيد سجل A (IPv4) أو AAAA (IPv6). كل جواب له TTL يحدّد مدة تخزينه. بعدها مصافحة TCP، ثم مصافحة TLS 1.3 (شهادة الخادم موقّعة من جهة موثوقة)، ثم طلب HTTP، ثم تحليل HTML وبناء DOM وCSSOM والرسم.
قبل أن تبدأ
📡الشبكة والعنوان
تعرف IP والمنفذ وTCP.
الفكرة الجوهرية
1أجزاء الرابط
https://shop.example.com:443/cart?id=7#pay: البروتوكول https، المضيف shop.example.com، المنفذ 443، المسار /cart، الاستعلام id=7، والجزء #pay لا يُرسل للخادم أصلًا، يستخدمه المتصفح فقط.
from urllib.parse import urlsplit, parse_qs
url = "https://shop.example.com:443/cart?id=7&lang=ar#pay"
p = urlsplit(url)
print("scheme:", p.scheme)
print("host:", p.hostname, "port:", p.port)
print("path:", p.path)
print("query:", parse_qs(p.query))
print("fragment:", p.fragment)2DNS: دليل هاتف الإنترنت
يسأل المتصفح: «ما عنوان shop.example.com؟». إن لم يكن الجواب محفوظًا يسأل المحلّل، والمحلّل يسأل سلسلة خوادم من الجذر إلى خادم النطاق. الجواب يُحفظ مدة TTL، ولهذا تغيير الخادم قد يحتاج ساعات حتى يراه الجميع.
nslookup example.com # or on Linux / macOS dig example.com +short
3TLS: القفل في شريط العنوان
قبل أي بيانات، يتفق المتصفح والخادم على مفاتيح تشفير، ويقدّم الخادم شهادة تثبت أنه صاحب الاسم، موقّعة من جهة يثق بها المتصفح. بعدها لا يستطيع أحد في الطريق (مثل شبكة مقهى) قراءة ما بينكما أو تعديله.
4المتصفح يرسم الصفحة
يصل HTML فيبني المتصفح منه شجرة اسمها DOM، ويقرأ CSS فيعرف الشكل، ويشغّل JavaScript الذي قد يغيّر الشجرة. ثم يحسب مكان كل عنصر (layout) ويرسمه (paint). كل ملف CSS أو JS إضافي رحلة جديدة، ولهذا الصفحات الثقيلة بطيئة.
مثال محلول
المسألة: موقع شركتك نُقل لخادم جديد، وبعض الموظفين يرون القديم. التحليل: الاسم ما زال محفوظًا في ذاكرة DNS عندهم بالعنوان القديم لأن TTL كان 24 ساعة. الحل: انتظر انتهاء TTL أو امسح ذاكرة DNS (ipconfig /flushdns)، وفي المرة القادمة خفّض TTL إلى 5 دقائق قبل النقل.
خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| القفل يعني أن الموقع آمن وموثوق. | يعني فقط أن الاتصال مشفّر مع صاحب الاسم. موقع احتيال يستطيع أن يحصل على شهادة لاسمه هو. |
| الجزء بعد # يصل للخادم. | لا يُرسل أبدًا، يستخدمه المتصفح للقفز داخل الصفحة أو تستخدمه تطبيقات الواجهة. |
اختبر فهمك
ما وظيفة DNS؟
DNS دليل هاتف: اسم يدخل وعنوان يخرج.
ما الجزء الذي لا يُرسل للخادم في https://a.com/p?x=1#top؟
الجزء بعد # يبقى في المتصفح.
لماذا يتأخّر ظهور تغيير DNS عند بعض الناس؟
كل محلّل يحتفظ بالجواب القديم حتى تنتهي مدته.
بطاقات مراجعة سريعة
تحقق من فهمك
رتّب: TLS، DNS، رسم الصفحة، طلب HTTP، اتصال TCP.
DNS، ثم TCP، ثم TLS، ثم طلب HTTP، ثم رسم الصفحة.
ماذا تثبت شهادة الخادم؟
أن الخادم يملك اسم النطاق الذي طلبته، بتوقيع جهة يثق بها المتصفح. ولا تثبت أن صاحبه أمين.
لماذا تجعل ملفات CSS وJS الكثيرة الصفحة أبطأ؟
كل ملف طلب إضافي، والمتصفح قد يتوقّف عن الرسم حتى يحمّل CSS ويشغّل بعض JS.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.