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


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

این روزها به‌دلایل مختلفی مانند جستجوی برخی نیازها در 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های مختلف میان مرورگر کاربر و سرور هستیم تا داده‌های درخواست شده توسط شما اعم‌ از تصاویر، ویدیوها و … در مرورگر شما به نمایش دربیایند.

برچسب‌ها:

خدمات رایگان لیارا

۲.۵ گیگابایت فضای ذخیره‌سازی ابری رایگان

۲.۵ گیگابایت Object Storage سازگار با پروتکل S3 با دیسک‌های SSD به‌صورت رایگان دریافت کنید.

هاست رایگان برای دیتابیس‌

دیتابیس‌های MariaDB، PostgreSQL و Redis را فقط با یک کلیک و به‌صورت رایگان تهیه کنید.

سرویس DNS رایگان

به سادگی دامنه‌تان را اضافه کنید و به صورت رایگان رکورد‌های آن را مدیریت کنید.

۱۰۰ هزار تومان اعتبار اولیه

بعد از ثبت نام در لیارا مبلغ ۱۰۰ هزار تومان اعتبار هدیه دریافت می‌کنید که با توجه به ساعتی بودن هزینه سرویس‌ها، می‌توانید تمامی خدمات پولی را برای چندین هفته رایگان استفاده کنید.

ارسال ۱۰۰ ایمیل تراکنشی رایگان در هر ماه

در سرویس ایمیل لیارا شما می‌توانید تا ۱۰۰ ایمیل رایگان در هر ماه ارسال کنید و فقط برای بیش از آن هزینه پرداخت کنید. (به‌همراه دسترسی SMTP)

هاست رایگان برای انواع وبسایت

تفاوتی ندارد برای وبسایت خود از Node استفاده می‌کنید یا Laravel و Django، در لیارا می‌توانید به صورت کاملا رایگان آن را میزبانی کنید.

توسعه‌دهندگان درباره‌ی ما چه می‌گویند

تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...

MohammadReza
liara testimonial
keikaavousi

بعد از بسته شدن @fandoghpaas و ناراحتی همه‌مون از اینکه یه سرویس خوب و صادق نمی‌تونه از پس هزینه‌ها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوت‌هایی داشت که کمی کار می‌خواست ولی تا الان کاملا راضی.

jadi
liara testimonial
jadi

یه خسته نباشید باید به تصمیمliara_cloud@بگم،
بعد از چندین روز سرکله زدن با سرویس های مشابه بالاخره تصمیم گرفتم لیارا رو امتحان کنم و باور نمیشه ۱۰ دقیقه بیشتر وقت نبرد،
دمتون گرم.

Arch
liara testimonial
EbadiDev

واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیت‌های سرویس دیتابیس‌شون اینه که خودشون به صورت دوره‌ای بکآپ میگیرن.
...

Ali Najafi
liara testimonial
me_ali_najafi

یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@

Navid
liara testimonial
1navid

عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم

Amir H Shekari
liara testimonial
vanenshi

همراه شما هستیم

در خصوص سفارش یا استفاده از سرویس‌ها سوالی دارید؟
تلفن واحد فروش:
۰۲۵-۳۳۵۵۷۶۱۹ (روزهای کاری ۹ الی ۱۷)
تلفن واحد فروش: ۳۳۵۵۷۶۱۹-۰۲۵ (روزهای کاری ۹ الی ۱۷)