اولین سوالی که توی سری " سؤالهای فنی مصاحبهها " میریم دنبالش اینه
سوال : وقتی توی مرورگر یه URL وارد میکنیم و Enter میزنیم،
دقیقاً چه اتفاقهایی میافته تا صفحه لود بشه؟
(فرایند طی شده از DNS Resolution تا Render شدن صفحه)
سعی کردم از پایه ای ترین سوال شروع کنم
------
خب اینجا مراحل رو سعی کردم به ترتیب بیارم
- DNS Resolution
طبیعتا مرورگر باید اول بفهمه که این url به چه ip ای اشاره داره
----
- TCP Handshake
توی درخواست اول یه همچین اتفاقی می افته
اولی بخش SYN :
مرورگر یه بسته برای سرور میفرسته برای شروع ارتباط (فلگ SYN)
دومی بخش SYN-ACK :
سرور جواب میده که " اره پیام رو گرفتم و آمادم " (فلگ SYN + ACK)
سومین بخش هم ACK:
مرورگر یه پیام میفرسته که پیام دریافت شده و ارتباط هم برقرار میشه
توی درخواست های بعدی یه چیزی از قبل هست و با همون اتصال قبلی متصل میشه
---
- TLS Handshake
گواهی مربوط به SSL بررسی میشه
ارتباط رمزنگاری میشه
----
- HTTP Request
حالا مرورگر می تونه درخواست هایی با متد های GET / POST برای سرور بفرسته و جواب بگیره
----
- Backend Processing
- Router
مشخص میکنه درخواست برای کدوم مسیر و با چه متدی اومده
(مسیر اشتباه → احتمالاً 404)
- View / Controller
ورودیها بررسی میشن
لاگین بودن کاربر، سطح دسترسی و معتبر بودن درخواست اینجا چک میشه
---
- Business Logic
قوانین سیستم:
- کاربر میتونه خرید کنه؟
- تخفیف شاملش میشه؟
- وضعیت سفارش چیه؟
معمولاً پیشنهاد میشه این بخش جدا باشه،
ولی توی عمل بسته به پروژه میتونه جاهای مختلفی پیادهسازی بشه.
----
- Database
حالا داده هایی که لازم داریم رو از دیتابیس میگیرم ( یا داخلش میریزیم )
----
- Response
در اخر بخش بک اند جوابش رو به سمت کاربر میفرسته
----
خب بیاین این سوال رو همینجا به پایان برسونیم
اگه توضیحاتم مشکلی داشت، یا نظری داشتید خوشحال میشم راهنماییم کنید
#Backend
#Python
#Django
#Career
#مصاحبه_شغلی
