برنامه‌نویسی

با کلیک بر روی لینک‌های اینترنتی چه اتفاقی می‌افتد؟


۱۵ خرداد ۱۴۰۰
با کلیک بر روی لینک‌های اینترنتی چه اتفاقی می‌افتد؟

این روزها به‌دلایل مختلفی مانند جستجوی برخی نیازها در Google، خرید‌های اینترنتی و … باید به تعداد زیادی از وبسایت‌ها سر بزنیم. حال این موضوع پس از تبدیل شدن به یک کار روزمره، اهمیت بالایی پیدا کرده است و ما در این مقاله تصمیم داریم به ساده‌ترین شکل ممکن فرایند‌هایی که پس از کلیک کردن بر روی یک لینک رخ می‌دهد را مورد بررسی قرار دهیم. البته باید قبل از پرداختن به اصل موضوع با برخی مفاهیم آشنا شوید.

URL چیست؟

URL مخفف شده‌ی عبارت Uniform Resource Locator است و با توجه به معنای این عبارت می‌توان نتیجه گرفت که از آدرس URL برای یافتن برخی منابع استفاده می‌شود.

برای درک بهتر موضوع به این مثال ساده توجه کنید. فرض را بر این بگیرید که می‌خواهید به یک مهمانی بروید بنابراین به آدرس محل برگزاری آن مهمانی نیاز خواهید داشت. حال همین موضوع در دنیای وب صادق است یعنی برای دسترسی به یک وبسایت اینترنتی، به آدرس URL آن سایت نیاز خواهید داشت.

ساختار هر URL به چه شکل است؟

آدرس URL سرویس ابری لیارا را درنظر بگیرید: https://liara.ir

بخش اول این آدرس URL یعنی HTTPS، پروتکل برقراری ارتباط با وبسایت سرویس ابری لیارا را مشخص می‌کند و البته این بخش از آدرس URL می‌تواند موارد دیگری مانند HTTP یا FTP باشد. حال این سوال پیش می‌آید که پروتکل چیست؟ پروتکل را می‌توان مجموعه قوانینی دانست که مرورگر کاربر باید از آن‌ها برای برقراری ارتباط از طریق شبکه پیروی کند و HTTPS (Hypertext Transfer Protocol Secure) یک نسخه‌ی ایمن برای تبادل اطلاعات است.

بخش بعدی این آدرس URL یعنی liara.ir به‌عنوان Domain Name شناخته می‌شود. اگر به مثال قبل خود برگردیم می‌توان گفت که Domain Name همان آدرس مکان برگزاری مهمانی است بنابراین برای مشاهده‌ی هر وبسایت به Domain Name آن نیاز خواهیم داشت تا راحت‌تر آدرس IP سروری که وبسایت را میزبانی می‌کند، پیدا کنیم.

آدرس IP چیست؟

آدرس IP، مجموعه‌ای از اعداد است که برای شناسایی منحصر‌به‌فرد هر دستگاه متصل به اینترنت استفاده می‌شود.

Domain Name چیست؟

Domain Name را می‌توان هویت منحصربه‌فرد هر وبسایت دانست بنابراین برای مشاهده‌ی وبسایت مورد نظرتان بایستی Domain Name آن وبسایت را در قالب یک آدرس URL در مرورگر خود وارد کنید و یا ازطریق موتورهای جستجویی مانند Google به آن آدرس URL دست پیدا کنید.

حال محتواهای مختلفی پس از بارگیری کامل وبسایت مورد نظرتان نمایش داده خواهد شد اما این محتواها چگونه سر از کامپیوتر شما درآورده‌اند؟

برای پاسخ به این سوال باید گفت که محتواها در یک سرور که می‌توان آن را نوعی کامپیوتر قوی‌تر دانست، میزبانی می‌شوند. همچنین همان‌طور که در بخش قبل گفته شد، هر دستگاه متصل به اینترنت دارای یک آدرس IP منحصربه‌فرد برای برقراری ارتباط با اینترنت است بنابراین هر زمانی که یک URL را در مرورگر خود وارد می‌کنید، درواقع آدرس IP سروری که میزبانی آن وبسایت را برعهده دارد، وارد کرده‌اید.

اما چرا از URL به‌جای وارد کردن آدرس IP استفاده می‌کنیم؟ برای جواب به این سوال که چرا نیازی به Domain Name و آدرس URL است باید گفت که به‌خاطر سپردن آدرس‌های IP به‌دلیل پیچیدگی‌هایشان بسیار سخت است و می‌توانید برای اعتبارسنجی این موضوع نگاهی به لیست مخاطبین خود داشته باشید و سعی کنید که شماره‌ی تماس افراد را به‌خاطر بیاورید.

همچنین شاید دانستن این موضوع برایتان جالب باشد که این حجم عظیم از آدرس‌های IP در یک دیتابیس عظیم درکنار Domain Name مربوطه‌شان نگهداری می‌شوند و سیستمی که این مسئولیت را برعهده دارد، DNS (Domain Name System) نام دارد.

DNS Lookup برای پیدا کردن آدرس IP

بلافاصله پس از وارد کردن آدرس URL در مرورگر باید آدرس IP سرور با کمک DNS پیدا شود و در این مرحله، DNS یا همان Domain Name System مانند یک دفترچه‌ی تلفن عمل می‌کند و ما با جستجوی Domain Name مورد نظرمان در آن می‌توانیم به آدرس IP سرور مربوطه دست پیدا کنیم. اما این یک نمای کلی است و چهار Network Layer وجود دارد که مسئولیت پیدا کردن آدرس IP را برعهده دارند بنابراین شناخت آن‌ها می‌تواند مفید باشد.

انواع Network Layer

انواع network layer
  • Application layer: لایه‌ای که برنامه‌ی شما در آن اجرا می‌شود.
  • Transport layer: این لایه مسئولیت پردازش ارتباط‌ها را برعهده دارد.
  • Network layer: مسئولیت موقعیت‌یابی مقصدها و مسیریابی برعهده‌ی این لایه است.
  • Data Link Layer: ارتباط one-to-one میان دستگاه‌ها مانند اتصال تلفن همراه شما به WIFI برعهده‌ی این لایه است.

اتفاق‌هایی که پس باز کردن یک لینک رخ می‌دهند

در ابتدا پس از وارد کردن URL در مرورگر، Browser Cache بررسی می‌شود زیرا مرورگرها در زمان بازدید از یک وبسایت، DNS recordهای آن را برای مدتی نگهداری می‌کنند اما درصورتی که هیچ DNS recordی وجود نداشت، فرایند مورد نیاز برای یافتن آدرس IP مربوط با دامنه اجرا می‌شود.

در مرحله‌ی دوم، این DNS query در OS Cache و Router Cache اجرا خواهد شد. حال اگر هیچ DNS recordی برای Resolve کردن این DNS query وجود نداشت باید از Resolver server کمک گرفته شود یعنی DNS query به ISP شما ارسال می‌شود و در اولین قدم ISP Cache نیز بررسی خواهد شد.

برای ساده نگهداشتن مقاله به جزئیات بیشتری نمی‌پردازیم اما در تصویر زیر می‌توانید روند کامل این فرایند را مشاهده کنید.

دیاگرام resolve شدن یک dns query

آغاز ارتباط بین سرور و مرورگر

پس از یافتن آدرس IP فرایند اتصال با سرور آغاز می‌شود. حال این فرایند باید پیرو یک پروتکل خاص باشد که متداول‌ترین آن‌ها TCP/IP است. با استفاده از فرایندی با نام TCP 3-way handshake، ارتباط مورد نظر ما برقرار خواهد شد.

  1. کامپیوتر کاربر یک SYN message را به آدرس IP می‌فرستد تا آمادگی اتصال را بررسی کند.
  2. اگر قابلیت اتصال وجود داشته باشد، سرور میزبان یک ACKnowledge message را به‌همراه SYN message به کامپیوتر کاربر ارسال می‌کند.
  3. درنهایت پس از دریافت شدن SYN message اولیه و ACK message از طرف سرور، یک ACK message از طرف کامپیوتر کاربر به سرور ارسال خواهد شد.
فرایند tcp connection میان مرورگر و سرور وبسایت

request و response چیست؟

Request یا همان درخواست‌ را می‌توانید یک نوع سیگنال درنظر بگیرید که توسط کلاینت‌ (دستگاه‌های هوشمند مانند تلفن‌های همراه و لپ‌تاپ‌ها) برای درخواست نوعی داده‌ی به‌خصوص مانند تصاویر، فیلم‌ها و … ارسال می‌شود. در ازای هر Request یک Response وجود دارد که از طرف سرور به کلاینت ارسال می‌شود و داده‌های درخواست شده را در خود جای داده است.

بخش پایانی

در پایان پس از طی شدن تمام این فرایند‌ها شاهد ایجاد چرخه‌ی requestها و responseهای مختلف میان مرورگر کاربر و سرور هستیم تا داده‌های درخواست شده توسط شما اعم‌ از تصاویر، ویدیوها و … در مرورگر شما به نمایش دربیایند.