آزاده خرسندنیا
آزاده خرسندنیا
خواندن ۳ دقیقه·۴ سال پیش

پروتکل HTTP

اگر بخواهید به عنوان یک برنامه نویس بک اند کار کنید، فرقی نمیکند که با چه زبانی کد مینویسید. از اصلی ترین و پایه ترین چیزهایی که باید بدانید پروتکل HTTP است.

همه ما میدانیم اینترنت در واقع شبکه عظیمی از شبکه های کامپیوتری می باشد که از دو بُعد قابل بررسی است. یک بُعد آن زیرساختی است که در واقع نحوه ی اتصال فیزیکی و پیاده سازی این شبکه ها را هدایت میکند. ولی بُعد دیگر آن، قوانین، استانداردها و قواعد حاکم بر این زیرساخت است که پروتکل HTTP یکی از اصلی ترین ارکان آن می باشد.

هدف اینترنت یا همین شبکه ی عظیم از شبکه های کامپیوتری، امکان "ارتباط داشتن کامپیوترها" بدون محدودیت های جغرافیایی، تکنولوژی، مقیاسی و غیره، بهم دیگر است.

منظور از ارتباط داشتن کامپیوترها هم ، "تبادل داده" می باشد. حالا این تبادل داده میتونه یک عکس، سند HTML و یا چیزی از این دست باشه، یا فقط یک Status Code ساده که نشان دهنده موفقیت یا عدم موفقیت یک عملیات، در یکی از این کامپیوترها هست.

اما نکته ی مهم اینه که تبادل داده یک پروسه خودکار نیست و باید حتما طی یک "درخواست" و "پاسخ" اتفاق بیفته. بنابراین، اگر دو کامپیوتر، میخواهند باهم ارتباطی از جنس تبادل داده داشته باشند، باید حتما یکی از اینها درخواست بده و دیگری پاسخ اون درخواست رو.

درخواست کننده میشه "کلاینت" و پاسخ دهنده "سرور".

اما HTTP در این فضای درخواست و پاسخ نقشش کجاست؟

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

داروخانه، حکم اینترنت رو داره و دارو همون داده است که داخل قفسه های مختلف که در واقع سرورهای ما یا همون کامپیوترهای پاسخ دهنده در موقعیت های مختلف هستند، قرار داره. Client یا مشتری وارد داروخانه میشه و فقط یک نسخه دستشه که توش دارو یا همون Request اش رو نوشته و اصلا هم نمیدونه که کدوم قفسه و کجا این دارو قرار داره و این موضوع اصلا براشم اهمیتی نداره. اون فقط یک چیز میخواد، دارو!

اون سمت، یعنی پشت پیشخوان، هم دارو قرار داره که درون یک قفسه یا به عبارتی، هارد یک Server واقع شده که باید به مشتری به عنوان پاسخ داده بشه. حالا شاید بفهمید که پروتکل HTTP در این سناریو کیه؟ متصدی داروخانه.

داده موجودیت خامه. که قدرت جابه جایی نداره و فقط از نظر فیزیکی درون هارد یک کامپیوتر قرار داره. کامپیوترها هم فقط دروازه های درخواست و پاسخ بابت اون داده رو باز میکنند. خودشون مسئول این نقل و انتقال نیستند. دروازه ی Client مرورگرشه و دروازه ی Server ، نرم افزار وب سروری که روش نصبه. جاده ی متصل کننده این دو دروازه به منظور حمل و انتقال این داده، پروتکل HTTP است.

پروتکل HTTP
پروتکل HTTP

اگر بخواهیم یک جمع بندی داشته باشیم، گفتیم هدف اینترنت، ارتباط بین کامپیوترها است. این ارتباط هم خود به خودی نیست و طی پروسه درخواست و پاسخ اتفاق می افته. پس همیشه در هر ارتباطی در اینترنت، یک درخواست کننده یا Client وجود داره و یک Server که پاسخ دهنده است. دست آورد این ارتباط بین کلاینت و سرور، هم داده است. حالا داده یا شامل یک فایل فیزیکی میشه یا فقط یک Status Code ساده رو میخواد برگردونه.

پروتکل HTTP با سرور و کلاینت سر و کار داره. کارش چیه؟ قراره از Client درخواست بگیره و به سرور برسونه و از اون سمت، از Server ، پاسخ اون درخواست رو بگیره و مجدد به کلاینت برگردونه. هدفی هم دنبال میکنه ، همین تضمین رساندن درخواست و پاسخ به مبدا و مقصد مشخصه خودش، البته در کوتاهترین و امن ترین حالت ممکنه. البته این هدف آرمانی پروتکل HTTP ئه!. به منظور این هدفم، مجبوره از یکی از پروتکل های انتقال داده پیروی کنه. مثل TCP یا UDP.

در پست های بعدی با ساختار و نحوه ی کار HTTP بیشتر آشنا خواهیم شد.


httpbackendپروتکل httpاینترنت
برنامه نویس
شاید از این پست‌ها خوشتان بیاید