برنامه نویسی

در پشت صحنه درخواست HTTP چه اتفاقی می افتد؟ – جامعه dev

هنگامی که یک URL مانند Google.com را در مرورگر خود تایپ کرده و Enter را وارد کنید ، یک زنجیره جذاب از وقایع در حال حرکت است. درخواست به سرور ارسال می شود و در عرض چند ثانیه – با تشکر از اتصال مناسب اینترنت – صفحه سفید آشنا را با “Google” که به طرز جسورانه ای نوشته شده و یک نوار جستجو در مرکز مشاهده می کنید ، مشاهده می کنید. اما دقیقاً بین ضربه زدن و دیدن صفحه وب چه اتفاقی می افتد؟ بیایید به فرآیندهای پیچیده ای که این امر امکان پذیر است شیرجه بزنیم.

مرحله 1: وضوح DNS – یافتن آدرس سرور

قبل از اینکه مرورگر شما بتواند صفحه وب را واکشی کند ، باید بفهمد سرور Google در کجا قرار دارد. این فرایند به عنوان وضوح سیستم نام دامنه (DNS) شناخته می شود.
وضوح DNS چیست؟
رایانه ها ذاتاً نام دامنه قابل خواندن انسانی مانند Google.com را درک نمی کنند. در عوض ، آنها از آدرس های IP برای یافتن سرورها در اینترنت استفاده می کنند. آدرس IP یک شناسه منحصر به فرد برای رایانه یا دستگاه در شبکه است. نام دامنه به سادگی مونیمونیک است تا دسترسی به وب سایت ها بدون نیاز به یادآوری آدرس های عددی پیچیده ، برای انسان آسانتر شود. DNS مانند دفترچه تلفن اینترنت عمل می کند ، و نام دامنه را به آدرس IP مربوطه خود نقشه برداری می کند تا رایانه ها بتوانند سرورهای وب را پیدا کنند. به عنوان مثال ، Google.com ممکن است به یک آدرس IP مانند نقشه بکشد 216.58.223.196بشر

وضوح DNS چگونه کار می کند؟
هنگامی که در مرورگر خود Google.com را وارد می کنید ، مرورگر ابتدا سعی می کند آدرس IP تطبیق آن را پیدا کند. این به طور معمول در مراحل زیر انجام می شود:
الف

بررسی حافظه پنهان محلی
مرورگر ابتدا حافظه نهان محلی DNS خود را بررسی می کند تا ببیند آیا سابقه اخیر آدرس IP Google.com دارد یا خیر. در صورت یافتن ، مرورگر از این IP ذخیره شده استفاده می کند و با درخواست ، صرفه جویی در وقت را ادامه می دهد.
ب. پرس و جو از حل کننده سیستم عامل
اگر حافظه نهان مرورگر IP را نداشته باشد ، باعث می شود سیستم با حل کننده محلی DNS ، که توسط سیستم عامل اداره می شود ، تماس برقرار کند. سپس حل کننده سیستم عامل حافظه نهان خود را بررسی می کند. اگر یک رکورد تطبیق پیدا کند ، IP را به مرورگر باز می گرداند.
واقعیت جالب: برای دیدن سوابق ذخیره شده DNS در سیستم لینوکس ، می توانید از دستور زیر استفاده کنید: sudo resolvectl query google.com

خروجی پایانه

ج. درخواست از سرور DNS خارجی
اگر هیچ سابقه ذخیره نشده ای وجود نداشته باشد ، حل کننده محلی یک سرور DNS خارجی را ارائه می دهد ، که معمولاً توسط ISP شما یا یک ارائه دهنده عمومی DNS مانند Google DNS ارائه می شود (8.8.8.8) یا DNS Cloudflare (1.1.1.1)بشر

د. پیمایش در سلسله مراتب DNS
سرورهای DNS در یک سلسله مراتب ساختار یافته اند و درخواست از طریق چندین لایه حرکت می کند:
سرورهای Root DNS: این سرورها درخواست را به سرور دامنه سطح بالا (TLD) مناسب هدایت می کنند (به عنوان مثال ، .com برای Google.com ، .org برای سایر دامنه ها و غیره).
سرورهای TLD: سرور .com TLD سپس درخواست را به سرور نام معتبر برای Google.com هدایت می کند.
سرور معتبر DNS: این سرور آدرس IP واقعی را برای Google.com نگه می دارد و آن را به Resolver باز می گرداند.

سلسله مراتب DNS

ه. بازگشت آدرس IP
هنگامی که حل کننده آدرس IP را بدست آورد ، آن را به مرورگر ارسال می کند. هم اکنون مرورگر می تواند درخواست واقعی HTTP را به سرور Google با استفاده از روش GET آغاز کند.

با تکمیل این فرآیند ، مرورگر اکنون دقیقاً می داند که درخواست را از کجا ارسال کند و می تواند برای بازیابی صفحه وب اقدام کند. اما سفر به اینجا ختم نمی شود – متن ایجاد اتصال به سرور است.

مرحله 2: دستی سه طرفه TCP-ایجاد اتصال

در این مرحله ، شما ممکن است تعجب کنید که چرا ما نمی توانیم بلافاصله پاسخ سرور Google را دریافت کنیم. این مهم است که در نظر داشته باشید که داده های درخواست شده از سرورها همیشه ساده یا کوچک نیستند. اغلب ، این شامل عناصر اضافی مانند تصاویر ، فیلم ها و اسکریپت ها است. برای اطمینان از ارتباط صاف و جلوگیری از از بین رفتن داده ها ، هم سرور و هم رایانه شما نیاز به برقراری ارتباط قابل اعتماد دارند. این فرایند به عنوان دست زدن به TCP سه طرفه و می توان به عنوان یک مرحله آماده سازی برای اطمینان از آماده شدن هر دو طرف برای ارتباطات تصور کرد.
در اینجا نحوه عملکرد آن آورده شده است:
بسته سین
مشتری (مرورگر شما) ارسال می کند SYN (همگام سازی) بسته به سرور Google ، سیگنال می دهد که آماده شروع ارتباط است.
بسته سینک
سرور Google با یک پاسخ می دهد SYN-ACK (همگام سازی-بازپرداخت) بسته ، تصدیق دریافت SYN بسته و نشانگر آمادگی آن برای برقراری ارتباط.
بسته
سرانجام ، مشتری ارسال می کند ACK (تأیید کنید) بسته به سرور Google ، تأیید کنید که SYN-ACK بسته دریافت شد در این مرحله ، اتصال به طور کامل برقرار شده است و انتقال داده ها می توانند آغاز شوند.

مرحله 3: واکشی و ارائه صفحه وب

پس از برقراری اتصال ، سرور Google صفحه اصلی درخواست شده را ارسال می کند. این به طور معمول شامل HTML ، CSS ، JavaScript و سایر منابع مانند تصاویر یا فیلم ها است. مرورگر شما سپس این پرونده ها را پردازش می کند ، صفحه را ارائه می دهد و همانطور که عادت کرده اید آن را نمایش می دهد.
و دقیقاً مانند آن ، در عرض چند ثانیه ، صفحه اصلی Google Google در مرورگر شما ظاهر می شود ، برای شما آماده است تا جستجو را شروع کنید.

پایان

آنچه به نظر می رسد مانند یک عمل ساده – استفاده از URL و ضربه زدن به enter – یک سری پیچیده از مراحل را که یکپارچه در پشت صحنه کار می کند ، به وجود می آورد. از وضوح DNS گرفته تا دستی سه طرفه TCP ، هر مرحله نقش مهمی در ارائه صفحه وب به صفحه شما دارد. دفعه بعد که وب را مرور می کنید ، از فرآیندهای پیچیده ای که همه این امکان را ممکن می سازد ، قدردانی عمیق تری خواهید داشت

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا