1. المستخدم يكتب URL أو يضغط على لينك
مثال: https://example.com/about
2. المتصفح يحلل الـ URL
- يحدد:
- البروتوكول:
https - اسم المضيف (host):
example.com - البورت: 443 (افتراضي لـ HTTPS)
- المسار:
/about
- البروتوكول:
3. فحص DNS Cache أو إرسال DNS Request
- يبحث المتصفح عن IP الخاص بـ
example.com - لو مش موجود في الكاش:
- يسأل الـ DNS Resolver
- يمر بالـ Root → TLD → Authoritative DNS
- يحصل على IP (مثلاً:
93.184.216.34)
4. إنشاء اتصال TCP
- المتصفح يبدأ 3-way handshake مع السيرفر (TCP Handshake):
- SYN → SYN-ACK → ACK
5. بدء TLS Handshake (لو HTTPS)
- يتم الاتفاق على مفاتيح التشفير.
- التحقق من شهادة السيرفر (SSL/TLS).
- إنشاء Session Key مشترك.
6. إرسال طلب HTTP
GET /about HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
7. السيرفر يستلم الطلب
-
يمرر الطلب على:
- Web server (مثل Apache/Nginx)
- Application backend (مثل PHP, Node.js…)
- يتحقق من الصلاحيات – قواعد البيانات – المنطق الداخلي
8. إنشاء Response
- يتم بناء الرد مثلاً:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1024
<html>...</html>
9. إرسال الـ Response إلى المتصفح
- يرجع عبر نفس الاتصال (TCP).
- المتصفح يستلم البيانات.
ء10. Rendering الصفحة
- المتصفح يبدأ:
- تحليل HTML
- طلب ملفات CSS, JS, صور
- تنفيذ JavaScript
- عرض الصفحة للمستخدم
🔁 الطلبات الثانوية:
بعد تحميل الصفحة الرئيسية، المتصفح يعمل Requests إضافية:
- تحميل الصور
- تحميل ملفات JS/CSS
- اتصالات AJAX / API