الأساسيات
المفاهيم اللي كل system design مبني عليها. لو فهمتها صح، باقي المراحل هتبقى سهلة.
Networking Basics
ازاي الكمبيوترات بتتكلم مع بعض
HTTP و HTTPS
HTTP هو البروتوكول اللي بيستخدمه الـ browser عشان يطلب صفحات و بيانات من الـ server. لما تكتب URL في المتصفح، الـ browser بيبعت HTTP request للـ server، والـ server بيرد بـ HTTP response.
HTTPS هو نفس HTTP بس مع تشفير (TLS/SSL). يعني لو حد اعترض البيانات في الطريق مش هيقدر يقراها.
- 1. المتصفح بيبعت
GET /request للـ server - 2. الـ server بيرد بـ HTML + status code (200 OK)
- 3. المتصفح بيقرا الـ HTML و يطلب الصور والـ CSS
TCP و UDP
دول بروتوكولان أقل مستوى من HTTP. الفرق بينهم بسيط بس مهم جداً:
TCP
موثوق. بيتأكد إن البيانات وصلت سليمة و بالترتيب. أبطأ شوية بس آمن.
يستخدم في: HTTP, Email, File transfer
UDP
أسرع. بيبعت البيانات من غير ما يتأكد إنها وصلت. ممكن تضيع شوية بس السرعة هي الأهم.
يستخدم في: Video calls, Gaming, Live streaming
DNS: دليل التليفونات بتاع الإنترنت
الكمبيوترات بتتكلم بالأرقام (IP addresses) زي 142.250.185.46، بس البني آدمين بيحفظوا أسماء زي google.com. الـ DNS هو اللي بيترجم بين الاتنين.
- 1. المتصفح بيسأل: "ايه الـ IP بتاع google.com؟"
- 2. بيدور في الـ cache بتاعه الأول
- 3. لو ملقاش، بيسأل DNS server (زي 8.8.8.8)
- 4. الـ DNS بيرد بالـ IP
- 5. المتصفح يتصل بالـ IP ده
CDN: Content Delivery Network
تخيل إنك في مصر و موقع YouTube السيرفر بتاعه في أمريكا. كل فيديو هياخد وقت طويل. الـ CDN بيحل المشكلة دي.
الـ CDN هو شبكة من السيرفرات منتشرة حوالين العالم بتخزن نسخ من المحتوى (صور، فيديوهات، CSS). أقرب سيرفر ليك هو اللي بيخدمك.