آداب و رسوم Http و چرخه Request و Response در وب

لینک کانال بنده در یوتوب، عضویت شما در این کانال باعث امتنان است.امروز می‌خواهیم درباره پروتکل اچ تی تی پی (HTTP) و یا آداب و رسومی که سرویس گیرنده و سرویس‌دهند در وب رعایت می‌نمایند و با هم بده بستان می کنند بیشتر بدانیم که مفهوم و روش کار آن برای توسعه دهندگان بک‌اند و فرانت اند بسیار مهم است.اچ تی تی پی (HTTP) چیست؟طبق مخفف آن (Hyper Text Transfer Protocol) یعنی پروتکلی (آداب و رسوم) جهت انتقال داده به صورت متن است.این پروتکل جهت ارتباط بین سرویس دهنده و سرویس گیرنده در وب استدو قسمت اصلی دارد: درخواست Request / جواب Responseهر موقع شما صفحه در وب باز می کنید و عملیاتی مثل لود صفحه، submit فرم، آجاکس و یا Fetch را انجام می دهید از پروتکل مذکور استفاده می‌نمایید و برای تحویل محتواهای مانند مستندات، عکس ها، صداها و ویدیوها و غیره بکار می‌رود.به طور کلی HTTP پیام رسان وب است.پروتکلی بر مبنای TCP/IP است.چند مطلب مهم درباره HTTP : بعد از این که درخواست HTTP از طرف سرویس گیرنده به سرویس دهند ارسال می گردد، سرویس گیرنده ارتباط خود را از سرویس‌دهند قطع می کند و سپس وقتی جواب آماده شد سرویس دهند مجدد ارتباط را برقرار می کند و جواب را تحویل سرویس گیرنده می دهد به این روش connection less می گویند.امروزه هر نوع دیتایی را که سرویس گیرنده و سرویس دهند بتوانند بخوانند، می شود با پروتکل HTTP ارسال گردد (لازم بذکر است ابتدا این پروتکل صرفا متنی های HTML را رد و بدل می نمود)سرویس گیرنده و سرویس دهند فقط زمان درخواست جاری درباره وضعیت درخواست اطلاع دارند و وقتی درخواست بسته میشود دیگر اطلاع از وضعیت درخواست ندارند و اگر مجدد بخواهند باهم ارتباط برقرار کنند، می‌بایست مجدد اطلاعات لازم را برای هم ارسال کنند و یا به عبارتی مجدد ارتباط برقرار کنند و یا به عبارتی وضعیت هر درخواست نه به درخواست قبلی وابسته است و نه به درخواست بعدی و این خاصیت Stateless نامیده می‌شود.چرخه درخواست (Request) و پاسخ (Response)شما وقتی می خواهید یک صفحه در اینترنت ببیند ابتدا آدرس (URL) صفحه را معمولا در مرورگر وارد می‌نمایید، درخواست شما در قابل یک پیام HTTP به سرور از طریق اینترنت بروی پروتکل TCP/IP که وظیفه برقراری ارتباط بین شما و سرویس گیرنده را به عهده دارد ارسال می گردد و همانطور که گفتیم از آنجایی که پروتکل اچ تی تی پی connection less است، سرویس گیرنده بعد از ارسال پیام HTTP، سرویس گیرنده ارتباط خود را با سرویس دهند قطع می‌نماید و منتظر جواب می‌ماندو از طرف دیگر سرویس دهند بعد از اینکه درخواست را گرفت ابتدا درخواست را پردازش می کند و جواب را آماده می کند و مجدد ارتباط را ایجاد می‌نماید و جواب را در قالب پیام HTTP به سرویس گیرنده ارسال می کند (شکل زیر)همانطور که در شکل فوق مشاهده می فرمایید مهمترین چیزی که بین سرویس گیرنده و سرویس دهند رد و بدل می‌گردد و از تمام ماجرا مورد استفاده ما برنامه‌نویسان قرار می گیرد پیام اچ تی تی پی (HTTP message) است که در ادامه ساختار آن توضیح داده خواهد شد.پیام اچ تی تی پی(HTTP Message)پیام HTTP از سه قسمت شکل زیر تشکیل شده است:اطلاعات داخل سه قسمت فوق بستگی به Request و Response دارد.توجه کنید پیام اچ تی تی پی Request و Response از نظر ساختار یکی هستند اما از نظر محتوا متفاوت هستند (شکل ذیل) که در ادامه اجزاء هریک توضیح داده خواهد شد.ساختار پیام اچ تی تی پی Request همانطور که در شکل ذیل می بینید پیام اچ تی تی پی Request در قسمت شروع شامل یک متد سپس آدرس یا URI و نهایت نسخه HTTP درخواستی است و در قسمت Header یک متن به صورت نام : مقدار است و همانطور که مشاهده می فرمایید ممکن است در یک پیام بخش ‌‌Body خالی باشد.متد(Method) دستوری است که به سرویس دهنده ارسال می گردد و به آن می گوید چه کاری باید انجام دهد که شامل موارد زیر استمتد اول GET : جهت بازیابی دیتا از سرور بکار می رود.متد دوم POST: جهت ارسال دیتا به سرور بکار می رود.متد سوم PUT: جهت بروز رسانی دیتا که بروی سرور وجود دارد.متد چهارم DELETE : جهت حذف دیتا سرور بکار می روددر قسمت آدرس یا URI، آدرس منبعی(Resource) است که ما می خواهیم آورده می شود به عنوان مثال صفحه که مورد نظر ما جهت نمایش در مرورگر است آورده می شود.در نهایت در بخش شروع نسخه HTTP که سرویس گیرنده به سرویس دهند ارسال می کند که برای خود قابل فهم است مانند نسخه یک HTTP همانطور که در شکل فوق می بینیم در قسمت Header اطلاعات و قوانینی که به سرویس دهند ارسال می گردد که مورد قبول سرویس گیرنده است از جمله اسم سایت سرویس گیرنده، نوع داده و زبان مورد قبول.ساختار پیام اچ تی تی پی Response ساختار کلی پیام اچ تی تی پی Response به شکل ذیل است که همانطور می بینیم آدرس در بخش شروع دیگر وجود ندارد و در قست شروع یک کد وضعیت مهم ارسال می گردد که نتیجه درخواست در آن به سرویس گیرنده ارسال می‌شود که در ادامه کد های وضعیت را توضیح خواهیم داد.کد های وضعیتهمانطور که گفتیم کدهای وضعیت پیام HTTP وضعیت درخواست را به سرویس گیرنده اعلام می کنند که شامل موارد زیر است که همانطور که در شکل می بینیم کد های مهم و پر کاربرد کد های ‍‍۱ جهت اطلاع است، کد های ۲ موفقیت را اعلام می کند، کدهای ۴ خطای سمت سرویس گیرنده را اعلام می کند و کدهای ۵ خطای سمت سرویس دهنده است.ابزاری که جهت مشاهده وضعیت Request و Response بسیار مورد استفاده برنامه نویسان قرار می گیرد Developer Tools ها مرورگرهای کروم و فایر فاکس است که مواردی که در فوق عرض شد را در هر درخواست نمایش می دهد و وضعیت هریک در آنها به تفکیف قابل نمایش و پیگیری است.در آخر همانطور که گفتیم این پروتکل متنی است و ممکن است در هنگام ارسال و دریافت کپی برداری گردد و امنیت آن مورد خطر باشد لذا برای افزودن امنیت پروتکل Https وجوددارد که همان پروتکل Http است که امنیت آن از طریق Encrypte داده های آن جهت جلوگیری از سرقت آن در هنگام انتقال داده ها برقرار شده است.