
پروتکل HTTP چیست؟ خب امروز هم با مفهوم پروتکل HTTP که از مهمترین پروتکل های شبکه های اینترنتی است در خدمت شما هستیم. پروتکل HTTP یا Hyper Text Transfer Protocol از پرکاربرد ترین پروتکل های تعریف شده برای شبکه های اینترنتی است که با گذشت مدتی بعد از ساخت اولین وب سایت ها ساخته و منتشر شد.
استاندارد http همانطور که گفته شد از پر کاربرد ترین پروتکل های شبکه اینترنتی است و به همین دلیل نیز با گذشت زمان توسعه های بسیاری پیدا کرد و کنسرسیوم جهانی وب (W3C) وظیفه توسعه و نظارت کامل را بر روی این پروتکل بر عهده گرفت.
اگر شما هم می خواهید بیشتر درباره پروتکل یا استاندارد HTTP بدانید بهتر است در ادامه این مطلب از رویال سایت همراه ما باشید.

پروتکل HTTP چیست؟
در گذشته برای تبادل اطلاعات در شبکه اینترنت روش استانداردی وجود نداشت و به همین دلیل نیز “تیم برنرز لی (Tim Berners-Lee) در سال 1991” پروتکل Hyper Text Transfer Protocol یا به اختصار Http را با هدف پیاده سازی آن به صورت یک استاندارد برای تبادل اطلاعات شبکه اینترنت را ایجاد کرد. این پروتکل همراه با ساختار اولیه HTML در یک وب سرور ساده و مرورگری مبتنی بر متن توسط برنرز لی ارائه شد.
عبارت استاندارد Http مخفف شده عبارت Hyper Text Transfer Protocol است که به معنای پروتکلی برای انتقال ابر متن ها است. امکان ایجاد صفحات وب و انواع وب سایت ها بر اساس این پروتکل فراهم شد. این پروتکل در یک شبکه کامپیوتری وظیفه برقراری ارتباط بین سرور و کلاینت را بر عهده داشت. به عبارتی دیگر یا به زبانی ساده تر این پروتکل در شبکه اینترنت وظیفه داشت ارتباط بین سرویس گیرنده و سرویس دهنده را برقرار کند.

منظور از Hypertext یا همان ابرمتن چیست؟
کلمه Hypertext یا ابر متن شاید کمی بحث برانگیز باشد و ذهن شما را درگیر کند. شاید شما متوجه منظور کلی این عبارت نشده باشید پس در ادامه درباره این عبارت نیز بحث می کنیم.
منطور از کلمه Hypertext چیست؟ منطور از عبارت Hypertext یا ابرمتن همان متن های بزرگ و طولانی هستند که در قالب HTML نوشته می شود. البته برخلاف تصور شما از اینکه این کد ها تنها نوشتاری هستند و به صورت متنی ارائه می شوند اما بعد از پردازش آن ها توسط مرورگر همان متن ها به صورت متن نخواهند بود. یک فایل یا سند HTML می تواند دارای تصاویر،ویدئو ها، جداول یا حتی لینک ها و… باشد.
خب هنوز هم متوجه اصل ماجرال نشدید؟؟ بهتر است یک ابر متن را به چشم خود ببینید تا بهتر متوجه شوید. 👇
به عنوان مثال در صفحه اصلی وبسایت رویال سایت دقت کنید. هر آنچه که می بینید یک صفحه ای زیبا و شیک است که از اجزای مختلفی مانند تصاویر، متون، لینک ها و… ساخته شده است. اما ما می خواهیم پشت صحنه آن را هم ببینیم تا یک ابر متن را مشاهده کنیم. برای این کار تنها کافیست با مرورگر خود وارد شده و روی صفحه راست کلیک کنید و گزینه Inspect را انتخاب کنید. هرآنچه در این بخش مشاهده می کنید یک Hypertext یا همان ابر متن است.

پروتکل Http چگونه کار می کند؟
پروتکل HTTP برای ارسال و دریافت اطلاعات میان کلاینت و سرور، از فرآیند درخواست و پاسخ استفاده می کند. برای درک بهتر این فرآیند، می توان کلاینت را یک مرورگر در نظر گرفت که قصد دارد اطلاعات مربوط به یک وب سایت را دریافت کند.
در ابتدا، مرورگر یک درخواست برای سرور سایت ارسال می کند و منتظر پاسخ آن می ماند. سرور پس از دریافت درخواست، آن را بررسی می کند. اگر اطلاعات مورد نظر در سرور وجود داشته باشد، پاسخ مناسبی برای کلاینت ارسال می شود و اطلاعات درخواست شده در اختیار مرورگر قرار می گیرد.
داده ها معمولا به بسته های کوچک تری تقسیم می شوند و به صورت منظم و پشت سر هم برای کلاینت ارسال می گردند. در این فرآیند، پروتکل TCP وظیفه برقراری ارتباط مطمئن، کنترل ترتیب بسته ها و اطمینان از رسیدن صحیح اطلاعات را بر عهده دارد.
ارتباط معمولی HTTP به صورت پیش فرض از پورت 80 استفاده می کند، در حالی که ارتباط امن HTTPS معمولا از طریق پورت 443 برقرار می شود. همچنین به مجموعه تعاملات و اطلاعات مرتبط با ارتباط یک کاربر و سرور در یک بازه زمانی مشخص، نشست یا Session گفته می شود.

روش های درخواست در پروتکل http
پروتکل HTTP روش های مختلفی را برای ارسال درخواست به سرور تعریف کرده است. هر یک از این روش ها برای انجام هدف مشخصی مورد استفاده قرار می گیرند. در نسخه های اولیه HTTP روش های GET، POST و HEAD وجود داشتند. در نسخه HTTP/1.1 روش های دیگری مانند OPTIONS، PUT، DELETE، TRACE و CONNECT نیز به صورت رسمی تعریف شدند. روش PATCH نیز بعدا برای اعمال تغییرات جزئی روی منابع اضافه شد.
- GET : روش GET برای دریافت اطلاعات از سرور استفاده می شود. در این نوع درخواست، آدرس منبع مورد نظر در URL قرار می گیرد. همچنین می توان پارامترهایی را به انتهای URL اضافه کرد.
- پارامترهای ارسال شده از طریق GET در نوار آدرس مرورگر قابل مشاهده هستند. سرور پس از دریافت درخواست، آن را پردازش می کند و نتیجه را برای کلاینت یا مرورگر باز می گرداند.
- POST : روش POST معمولا برای ارسال اطلاعات به سرور استفاده می شود. در این روش، اطلاعات و پارامترها به جای قرار گرفتن در انتهای URL، در بدنه درخواست قرار می گیرند. به همین دلیل داده های ارسال شده مستقیما در نوار آدرس مرورگر نمایش داده نمی شوند.
از این روش معمولا برای ارسال فرم ها، اطلاعات ورود کاربران، ثبت اطلاعات و ارسال فایل استفاده می شود. - HEAD : روش HEAD عملکردی شبیه GET دارد، با این تفاوت که سرور فقط Header های پاسخ را ارسال می کند و بدنه اصلی محتوا فرستاده نمی شود.
این روش برای بررسی اطلاعاتی مانند نوع محتوا، حجم فایل، تاریخ آخرین تغییر و وضعیت یک منبع کاربرد دارد. منظور از Header در این روش، سرآیندهای پروتکل HTTP است و ارتباطی با بخش<head>در سند HTML ندارد. - PUT : روش PUT برای ارسال و ذخیره یک منبع در آدرس مشخص شده روی سرور استفاده می شود. اگر در آن آدرس از قبل اطلاعاتی وجود داشته باشد، معمولا اطلاعات جدید جایگزین اطلاعات قبلی می شوند.
از این روش بیشتر برای ایجاد یک منبع جدید یا جایگزین کردن کامل یک منبع موجود استفاده می شود. - TRACE : در روش TRACE، سرور درخواست دریافت شده را بدون تغییر برای کلاینت باز می گرداند. این روش بیشتر برای بررسی مسیر ارسال درخواست، عیب یابی و شناسایی تغییراتی که واسطه های شبکه روی درخواست ایجاد کرده اند، به کار می رود.
به دلایل امنیتی، این روش در بسیاری از سرورها غیر فعال است. - OPTIONS : روش OPTIONS برای دریافت اطلاعات درباره روش های مجاز یک آدرس یا منبع استفاده می شود. کلاینت با استفاده از این درخواست می تواند از سرور بپرسد که چه روش هایی مانند GET، POST، PUT یا DELETE برای یک منبع قابل استفاده هستند.
این روش در ارتباطات میان وب سایت ها و در فرآیند CORS نیز کاربرد زیادی دارد. - DELETE : روش DELETE برای درخواست حذف یک منبع از سرور استفاده می شود. برای مثال، یک کلاینت می تواند از سرور درخواست کند که یک فایل، رکورد یا اطلاعات مشخصی را حذف کند.
اجرای واقعی عملیات حذف به سطح دسترسی کاربر و تنظیمات سرور بستگی دارد. - CONNECT : روش CONNECT برای ایجاد یک تونل ارتباطی میان کلاینت و سرور استفاده می شود. این روش بیشتر در پراکسی سرورها و برای برقراری ارتباطات رمزنگاری شده HTTPS کاربرد دارد.
در این حالت، پراکسی یک تونل TCP میان کلاینت و مقصد ایجاد می کند تا اطلاعات از طریق آن منتقل شوند. - PATCH : روش PATCH برای اعمال تغییرات جزئی روی یک منبع موجود در سرور استفاده می شود. برخلاف PUT که معمولا کل منبع را جایگزین می کند، PATCH فقط بخش های مشخصی از اطلاعات را تغییر می دهد.
برای مثال، اگر اطلاعات یک کاربر شامل نام، شماره تلفن و آدرس باشد، با استفاده از PATCH می توان فقط شماره تلفن او را تغییر داد، بدون آن که سایر اطلاعات دوباره ارسال یا جایگزین شوند.

ساختار Response ها و Request ها در Http
پیام های درخواست یا Request و پاسخ یا Response در پروتکل HTTP ساختار کلی مشابهی دارند. این پیام ها معمولا از بخش های زیر تشکیل می شوند:
خط شروع در پروتکل Http
اولین خط هر پیام HTTP، خط شروع نام دارد.
در پیام Request، خط شروع معمولا شامل سه بخش است:
- روش درخواست، مانند GET یا POST
- آدرس یا مسیر منبع مورد نظر
- نسخه پروتکل HTTP
به عنوان مثال:
GET /index.html HTTP/1.1در پیام Response، خط شروع شامل موارد زیر است:
- نسخه پروتکل HTTP
- کد وضعیت
- پیام مربوط به وضعیت
برای مثال:
HTTP/1.1 200 OKخطوط Header در HTTP
Header ها اطلاعات تکمیلی مربوط به درخواست یا پاسخ را مشخص می کنند. هر Header در یک خط جداگانه قرار می گیرد و معمولا دارای ساختار زیر است:
Key: Valueدر این بخش اطلاعاتی مانند نوع محتوا، طول محتوا، نام میزبان، نوع مرورگر، اطلاعات سرور، کوکی ها و وضعیت اتصال قرار می گیرند.
به عنوان مثال:
Content-Type: text/html
Content-Length: 1200
Host: example.comخط خالی در پروتکل Http
پس از پایان Header ها، یک خط خالی قرار می گیرد. این خط خالی مرز میان Header ها و بدنه پیام را مشخص می کند.
بدنه پیام در پروتکل Http
برخی از پیام های HTTP دارای بدنه یا Body هستند. در بدنه پیام می توان اطلاعاتی مانند داده های فرم، فایل ها، اطلاعات کاربر، محتوای HTML، داده های JSON یا نتیجه پردازش درخواست را قرار داد.
در درخواست هایی مانند POST، PUT و PATCH، بدنه معمولا شامل اطلاعاتی است که باید برای سرور ارسال شوند. در پاسخ سرور نیز بدنه می تواند شامل محتوای صفحه، تصویر، فایل یا اطلاعات درخواست شده باشد.
اگر شما هم می خواهید درباره پروتکل های وب بیشتر مطالعه کنید می توانید مطالب زیر را نیز از رویال سایت دنبال کنید:
تفاوت http و https چیست؟
آموزش فعال سازی ssl با وردپرس و هاست سی پنل
موفق و سربلند باشید. 🌹👋



بدون دیدگاه