كيف يعرض المتصفح صفحة Web
لا تُعرض صفحة Web كما هي في اللحظة التي تدخل فيها URL في المتصفح.
في الواقع، يحدث تسلسل من الخطوات: تفسير URL، والحصول على عنوان IP عبر DNS، والاتصال بالخادم، وإنشاء اتصال آمن عبر HTTPS، وإرسال طلب HTTP، واستلام استجابة من الخادم، ثم التصيير داخل المتصفح.
لكن ليس كل إجراء يبدأ بالضرورة من البداية كل مرة. فقد تكون نتائج DNS محفوظة مؤقتًا، أو يُعاد استخدام اتصال قائم، أو تُحمّل البيانات من ذاكرة المتصفح المؤقتة.
يتجنب هذا المقال التعمق الزائد في المواصفات التفصيلية، وينظم ما يحدث قبل عرض صفحة Web وفق تدفق الاتصال الفعلي.
ماذا يحدث بعد إدخال URL؟
مثلًا، لنفترض أنك أدخلت السلسلة "https[:]//example.com" في شريط عنوان المتصفح.
يفحص المتصفح أولًا السلسلة المدخلة.
يحدد هل هي كلمة بحث أم URL لموقع Web، وإذا كانت URL يفسر الوجهة.
يتضمن URL أساسًا أنواع المعلومات الآتية.
| العنصر | مثال | المعنى |
|---|---|---|
| Scheme | https | يوضح أي طريقة تُستخدم للاتصال |
| Hostname | example.com | يوضح اسم موقع Web المراد الاتصال به |
| رقم المنفذ | 443 | يوضح أي نقطة اتصال ينبغي الاتصال بها. غالبًا يُحذف |
| المسار | /about | يوضح أي موضع على الخادم يُطلب |
| سلسلة الاستعلام | ?id=10 | تمرر معلومات إضافية إلى الخادم |
| Fragment | #section | يوضح موضعًا داخل الصفحة. عادة لا يُرسل إلى الخادم |
URL صيغة تسهّل على البشر تحديد موقع Web.
لكن عند البحث عن الخادم الذي سيجري الاتصال به على الشبكة، يكون عنوان IP ضروريًا في النهاية.
لذلك ينتقل المتصفح إلى البحث عن عنوان IP من اسم المضيف.
البحث عن عنوان IP باستخدام DNS
لا يستطيع المتصفح الاتصال بخادم باستخدام الاسم "example.com" وحده.
DNS هو الآلية المستخدمة لذلك.
يربط DNS أسماء النطاقات بعناوين IP.
يفحص المتصفح أو OS أولًا ما إذا كانت نتائج DNS موجودة محليًا. إذا كنت قد وصلت إلى النطاق نفسه في الماضي، فقد يمكن الحصول على عنوان IP من ذاكرة DNS المؤقتة.
إذا لم تكن هناك معلومات في الذاكرة المؤقتة، يستعلم عن محلل DNS. يبحث محلل DNS عن عنوان IP الموافق لاسم النطاق المطلوب، مستعلمًا عن عدة خوادم DNS عند الحاجة.
| الخطوة | ما يحدث | الغرض |
|---|---|---|
| 1 | يفحص المتصفح أو OS الذاكرة المؤقتة | التحقق مما إذا كان يمكن إعادة استخدام عنوان IP جرى البحث عنه سابقًا |
| 2 | الاستعلام من محلل DNS | البحث عن عنوان IP الموافق لاسم النطاق |
| 3 | الحصول على سجل A أو AAAA | الحصول على وجهة IPv4 أو IPv6 |
| 4 | تحديد الوجهة باستخدام عنوان IP | تحديد طرف الاتصال الفعلي |
عنوان IP الذي يُحصل عليه هنا ليس ثابتًا بالضرورة.
حتى لاسم النطاق نفسه، قد ترجع عناوين IP مختلفة بحسب المنطقة وإعدادات DNS وموازنة الحمل وCDN وعوامل أخرى.
الاتصال بالخادم
بعد معرفة عنوان IP، يتصل المتصفح بالخادم الذي يملك ذلك العنوان.
في اتصال Web، لا يهم عنوان IP الوجهة فقط، بل رقم المنفذ أيضًا.
عادة يستخدم HTTP المنفذ 80، ويستخدم HTTPS المنفذ 443.
| طريقة الاتصال | رقم المنفذ الرئيسي | المعنى |
|---|---|---|
| HTTP | 80 | يُستخدم كثيرًا لاتصال Web غير المشفر |
| HTTPS | 443 | يُستخدم كثيرًا لاتصال Web المحمي بـ TLS |
في HTTP/1.1 وHTTP/2، يُستخدم TCP عادة للاتصال بالخوادم.
في المقابل، يستخدم HTTP/3 آلية تسمى QUIC تعمل فوق UDP.
لا يتعمق هذا المقال في تفاصيل HTTP/2 أو HTTP/3، لكن النقطة المهمة هي أن المتصفح يستخدم عنوان IP ورقم منفذ لإنشاء اتصال مع الخادم.
كذلك، لا يُنشأ اتصال جديد بالضرورة كل مرة. إذا كان اتصال بالخادم نفسه ما زال قائمًا، فقد يعيد المتصفح استخدام الاتصال الموجود.
إنشاء اتصال آمن باستخدام HTTPS
إذا بدأ URL بـ "https"، يتصل المتصفح بالخادم باستخدام HTTPS.
HTTPS هو اتصال HTTP محمي بـ TLS.
لـ TLS أساسًا الأدوار الآتية.
| الدور | المعنى | الأهمية |
|---|---|---|
| التشفير | يجعل محتوى الاتصال أصعب قراءة على الأطراف الثالثة | يحمي كلمات المرور ومحتوى الصفحة |
| كشف العبث | يفحص هل تغير المحتوى أثناء الاتصال | يجعل منع التعديل من مهاجم في الوسط أسهل |
| التحقق من هوية الخادم | يفحص هل الوجهة هي خادم النطاق المقصود | يساعد على الدفاع ضد المواقع المزيفة وهجمات الرجل في الوسط |
النقطة المهمة هنا أن HTTPS ليس مجرد "آلية تشفر الاتصال".
يفحص المتصفح الشهادة التي يقدمها الخادم ويتحقق مما إذا كانت تلك الشهادة صالحة لاسم النطاق الذي يجري الوصول إليه.
بفضل هذا الفحص، يستطيع المتصفح الحكم بأن "الخادم الذي اتصلت به هو على الأرجح الخادم المقصود".
لكن حتى عند استخدام HTTPS، لا تختفي كل المعلومات عن الاتصال.
مثلًا، عنوان IP الوجهة، ووقت حدوث الاتصال، وكمية الاتصال ليست أمورًا يستطيع HTTPS وحده إخفاءها بالكامل.
كذلك، بحسب البيئة، قد تظهر معلومات عن اسم نطاق الوجهة على مسار الشبكة.
أي إن HTTPS مهم جدًا لحماية محتوى الاتصال والتحقق من الطرف الآخر، لكنه ليس آلية تضمن المجهولية بالكامل.
طلب صفحة عبر HTTP/HTTPS
بعد إنشاء اتصال آمن، يطلب المتصفح الصفحة من الخادم.
يسمى هذا الطلب طلب HTTP.
مع HTTPS، تُرسل محتويات طلب HTTP وهي محمية بـ TLS.
مثلًا، قد يرسل المتصفح إلى الخادم أنواع المعلومات الآتية.
| المعلومة | المعنى | ملاحظة |
|---|---|---|
| Method | أي عملية يريد تنفيذها | GET يُستخدم كثيرًا لجلب الصفحات |
| Path | أي صفحة أو بيانات يريدها | مثل / أو /about |
| Host | لأي نطاق موجه الطلب | يُستخدم أيضًا عندما تُدار عدة مواقع على IP واحد |
| User-Agent | معلومات مثل المتصفح وOS | تُستخدم لاكتشاف البيئة وتعديل العرض |
| Accept-Language | اللغة المفضلة | تُستخدم لقرارات مثل عرض صفحات يابانية |
| Referer | هل تُرسل صفحة الإحالة | قد لا تُرسل بحسب الإعدادات أو المواصفات |
| معلومات تعريف محفوظة للموقع | تُستخدم للحفاظ على حالة تسجيل الدخول والإعدادات |
ينظر الخادم إلى هذا الطلب ويقرر أي بيانات يرجع.
حتى عند الوصول إلى URL نفسه، قد يتغير المحتوى الراجع بحسب حالة تسجيل الدخول وCookie وإعدادات اللغة ونوع الجهاز وعوامل أخرى.
يرجع الخادم البيانات
بعد تلقي طلب من المتصفح، يرجع الخادم استجابة HTTP.
تتضمن استجابة HTTP رمز حالة، وترويسات، وجسمًا، وأجزاء أخرى.
| العنصر | مثال | المعنى |
|---|---|---|
| رمز الحالة | 200 | يوضح هل نجح الطلب، أو هل حدث خطأ، ومعلومات مشابهة |
| الترويسة | Content-Type | توضح نوع البيانات وسياسة التخزين المؤقت ومعلومات مشابهة |
| الجسم | HTML وبيانات مشابهة | البيانات الفعلية التي يستخدمها المتصفح |
HTML هو مركز صفحة Web، لكن HTML وحده لا يكمل الصفحة كلها بالضرورة.
تُعرض كثير من صفحات Web بدمج عدة أنواع من البيانات.
| البيانات | الدور |
|---|---|
| HTML | يمثل بنية الصفحة |
| CSS | يحدد المظهر مثل الألوان والتباعد والتخطيط وحجم النص |
| JavaScript | ينفذ المعالجة والتغييرات الديناميكية على الصفحة |
| الصور | تعرض الصور الفوتوغرافية والأيقونات والرسوم وما شابه |
| الخطوط | تضبط شكل النص |
| الفيديو والصوت | يشغّلان محتوى وسائط |
يتلقى المتصفح HTML أولًا، ثم يحصل أيضًا على CSS وJavaScript والصور والخطوط والموارد الأخرى المحددة داخل HTML.
لذلك فإن فتح صفحة Web واحدة يؤدي في الواقع غالبًا إلى عدة طلبات HTTP.
يعرضها المتصفح على الشاشة
عندما يتلقى المتصفح البيانات من الخادم، يحول تلك البيانات إلى شكل يمكن عرضه على الشاشة.
بصورة عامة، تحدث أنواع المعالجة الآتية.
| الخطوة | ما يحدث |
|---|---|
| تحليل HTML | قراءة بنية الصفحة |
| تطبيق CSS | عكس المظهر مثل الألوان والتخطيط وحجم النص |
| تنفيذ JavaScript | تشغيل المعالجة والتغييرات داخل الصفحة |
| تحميل الموارد | جلب الصور والخطوط والملفات الأخرى |
| الرسم على الشاشة | عرض النتيجة النهائية للمستخدم |
التصيير ليس مجرد "عرض HTML كما هو".
يفسر المتصفح HTML وCSS وJavaScript وموارد أخرى، ويبني الصفحة التي يراها المستخدم.
وبحسب الصفحة، قد تحدث طلبات إضافية بعد العرض الأولي أيضًا.
مثلًا، قد تُجلب تعليقات جديدة، أو تُحمّل صور عند التمرير، أو تُحدّث إشعارات، أو تُطلب بيانات API.
لذلك، حتى في صفحة Web نفسها، قد يتغير العرض بحسب جهاز PC أو الهاتف الذكي، ونوع المتصفح، وعرض الشاشة، والإعدادات.
حتى الصفحة الواحدة قد تنشئ عدة اتصالات
المهم في عرض صفحة Web هو أن فتح صفحة واحدة لا يعني بالضرورة أن جهة الاتصال واحدة.
حتى إذا كان جسم الصفحة يُجلب من example.com، فقد تُحمّل الصور أو الإعلانات أو تحليلات الوصول أو الخطوط الخارجية أو السكربتات الخارجية من نطاقات أخرى.
| جهة الاتصال | الغرض | مثال |
|---|---|---|
| خادم جسم الصفحة | الحصول على HTML | النص وبنية الصفحة |
| خادم توزيع الصور | الحصول على الصور | صور المقال والأيقونات |
| خادم الإعلانات | عرض الإعلانات | إعلانات البانر وسكربتات الإعلان |
| خادم التحليلات | قياس حالة الوصول | وسم تحليلات الوصول |
| خادم الخطوط الخارجية | تحميل الخطوط | Web fonts |
| خادم السكربتات الخارجية | إضافة وظائف | ويدجت مضمّن أو أجزاء UI |
من منظور المستخدم، قد يكون الأمر مجرد "فتح صفحة واحدة"، لكن في الخلفية قد يتصل المتصفح بعدة خوادم.
كما قد تحدث اتصالات إضافية ليس فقط عند فتح الصفحة، بل عند التمرير، أو الضغط على زر، أو البحث، أو إدخال نموذج، أو تشغيل فيديو.
في صفحات Web الحديثة، من الشائع أيضًا تحميل الحد الأدنى من البيانات أولًا، ثم جلب بيانات إضافية بحسب تفاعل المستخدم.
قد تُختصر الاتصالات بسبب الذاكرة المؤقتة
عند عرض صفحة Web، لا تُجلب كل البيانات من الخادم كل مرة بالضرورة.
قد يحفظ المتصفح مؤقتًا صورًا وCSS وJavaScript وغيرها مما جرى جلبه سابقًا.
تسمى هذه الآلية الذاكرة المؤقتة.
إذا كانت الذاكرة المؤقتة فعالة، فقد يستخدم المتصفح البيانات المحفوظة داخل الجهاز بدل جلب البيانات نفسها من الخادم مرة أخرى.
| الهدف | أثر الذاكرة المؤقتة |
|---|---|
| نتائج DNS | تقلل الحاجة إلى البحث مرة أخرى عن عنوان IP من اسم النطاق |
| الصور | لا يلزم تنزيل الصورة نفسها مرارًا |
| CSS | يمكن إعادة استخدام ملفات مظهر الصفحة |
| JavaScript | يمكن استخدام السكربت نفسه من دون جلبه مرة أخرى |
| الاتصال | قد يمكن إعادة استخدام مسار اتصال قائم |
الذاكرة المؤقتة مهمة لزيادة سرعة العرض وتقليل حجم الاتصال.
لكن عند التفكير في المجهولية والخصوصية، يجب الانتباه أيضًا إلى المعلومات التي تبقى داخل المتصفح، مثل الذاكرة المؤقتة وCookie.
منظورات مهمة عند التفكير في المجهولية
المهم عند التفكير في المجهولية هو أن فعل فتح صفحة Web ليس اتصالًا واحدًا بسيطًا.
في الوصول إلى Web، ترتبط عدة عناصر مثل DNS وعنوان IP وHTTPS وCookie وUser-Agent وReferer والسكربتات الخارجية والذاكرة المؤقتة.
حتى إذا كان محتوى الاتصال محميًا بواسطة HTTPS، فإن عنوان IP لجهة الاتصال، وتوقيت الاتصال، وحجم الاتصال، والترويسات التي يرسلها المتصفح، والتعرف عبر Cookie، والاتصالات الإضافية بخوادم خارجية، كلها تصبح مسائل من منظور آخر.
| المنظور | ما ينبغي فحصه |
|---|---|
| DNS | أي اسم نطاق جرى الاستعلام عنه |
| عنوان IP | أي خادم جرى الاتصال به |
| HTTPS | هل يجري تشفير محتوى الاتصال وكشف العبث والتحقق من الطرف |
| Cookie | هل توجد إمكانية للتعرف إليك كمستخدم واحد |
| User-Agent | هل تُرسل معلومات بيئة مثل المتصفح وOS |
| Referer | هل تُرسل معلومة الصفحة السابقة |
| خادم خارجي | هل تُحمّل إعلانات أو تحليلات أو خطوط أو سكربتات |
| الذاكرة المؤقتة | هل تُستخدم معلومات باقية داخل المتصفح |
بعبارة أخرى، لا يمكن الحكم على مجهولية Web من "هل URL هو HTTPS فقط".
يجب النظر إلى من يرى الطلبات، وأي Cookie تُرسل، وأي خوادم خارجية تُستخدم، وأي سجلات قد تبقى.
خلاصة
عندما تدخل URL في المتصفح، لا تُعرض الصفحة فورًا من دون خطوات.
يفسر المتصفح URL، ويبحث عن عنوان IP عبر DNS، ويتصل بالخادم باستخدام عنوان IP ورقم منفذ، وينشئ اتصالًا آمنًا عند استخدام HTTPS، ثم يرسل طلب HTTP ويتلقى استجابة.
بعد ذلك يفسر HTML وCSS وJavaScript والموارد الأخرى ويعرض الصفحة على الشاشة.
لكن DNS والاتصالات والموارد قد تُعاد استخدامها أو تُحمّل من ذاكرة مؤقتة، ولا تبدأ كل خطوة من الصفر دائمًا.
كما أن صفحة واحدة قد تتضمن طلبات متعددة إلى خوادم أو CDN أو API مختلفة.
فهم هذا التدفق يساعد على معرفة ما الذي يصل إلى جهة الموقع، وما الذي يحميه HTTPS، وما الذي قد يبقى مرئيًا كسجلات أو بيانات وصفية.
وهذا أساس مهم عند التفكير في المجهولية على Web.
أدوات ذات صلة
DNSLeakTest
مورد خارجي مرتبط بهذه المقالة. افتحه فقط إذا كان مناسبًا لوضعك ولنموذج التهديد لديك.
سبب إدراجه هنا: قد يساعد في موضوع المقالة، لكنه خارج Anonymity Sense وينبغي التحقق منه قبل استخدامه.
BrowserLeaks WebRTC
مورد خارجي مرتبط بهذه المقالة. افتحه فقط إذا كان مناسبًا لوضعك ولنموذج التهديد لديك.
سبب إدراجه هنا: قد يساعد في موضوع المقالة، لكنه خارج Anonymity Sense وينبغي التحقق منه قبل استخدامه.