campaign-Ghorban-to-Ghadir

پروتکل HTTP چیست؟



visibility  
mode_comment   ۳

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

پروتکل Http

پروتکل Http چیست؟

در گذشته روش استانداردی برای تبادل اطلاعات در شبکه اینترنت وجود نداشت. به همین دلیل تیم برنرز لی (Tim Berners-Lee) در سال 1991 پروتکل Http را با هدف پیاده سازی یک استاندارد برای تبادل اطلاعات در شبکه اینترنت ایجاد کرد. برنرز لی این پروتکل را به همراه ساختار اولیه HTML در یک وب سرور ساده و یک مرورگر مبتنی بر متن ارائه کرد.

Http مخفف عبارت Hyper Text Transfer Protocol است که به معنی پروتکلی برای انتقال ابرمتن ها می باشد. بر اساس این پروتکل، امکان ایجاد صفحات وب و سایت های اینترنتی فراهم شد. این پروتکل وظیفه برقراری ارتباط میان سرور و کلاینت را در یک شبکه کامپیوتری برعهده دارد. به عبارتی دیگر این پروتکل مسئولیت برقراری ارتباط بین سرویس دهندگان و سرویس گیرندگان وب را برعهده دارد.

منظور از Hypertext یا ابرمتن چیست؟

شاید برای شما سوال شود، که منظور از کلمه Hypertext چیست؟ منظور از Hypertext یا ابر متن، متن های بزرگ و طولانی است که به صورت HTML نوشته می شوند. البته برخلاف اینکه کدهای نوشته شده فقط به صورت متنی هستند، بعد از پردازش توسط مرورگر کاربر الزاما به صورت متنی نخواهند بود. یک سند HTML می تواند دارای تصویر، ویدئو، جدول ، لینک و... باشد. اگر هنوز نتوانسته اید به خوبی این موضوع را درک کنید، بهتر است خودتان به یک ابر متن نگاه کنید!

برای مثال صفحه اول سایت سون لرن را در نظر بگیرید. آن چه می بینید یک صفحه شکیل با اجزای مختلف از جمله تصویر، متن، کادربندی و... است. اما اگر قصد دارید پشت صحنه این صفحه وب را ببینید، کافی است با مرورگر خود (مثلا مرورگر کروم) روی صفحه کلیک راست کنید و روی گزینه Inspect کلیک کنید. آنچه الان می بینید یک Hypertext است.

more  بیشتر بخوانید : پروتکل TLS چیست؟

پروتکل Http

پروتکل Http چگونه کار می کند؟

پروتکل Http

پروتکل Http از Handshaking به منظور ارسال و دریافت اطلاعات استفاده می کند. در این روش برای شروع و پایان عملیات تبادل اطلاعات بین سرور و کلاینت، چندین درخواست و پاسخ رد و بدل می شود. تصور کنید که کلاینت (مرورگر) فردی است که قصد دارد اطلاعات مربوط به یک سایت را دریافت کند. در ابتدا باید درخواستی با این هدف به سرور آن سایت ارسال کند. سپس باید صبر کند، تا از طرف سرور پاسخی برای درخواستش دریافت کند. در صورتی که اطلاعات خواسته شده در سرور موجود باشند، پاسخی مبنی بر موافقت ارسال اطلاعات برای شخص ارسال می شود.

سپس بار دیگر از طرف کلاینت پیامی مبنی بر درخواست داده های اطلاعاتی به سرور فرستاده می شود. در این مرحله سرور پیام را دریافت کرده و داده های درخواست شده را در بسته های اطلاعاتی کوچک تری تقسیم می کند. در نهایت این بسته ها توسط پروتکل Handshaking پشت سر هم و به ترتیب برای شخص ارسال می شوند. لازم به ذکر است که در این فرآیند از پروتکل های TCP/IP به منظور افزایش امنیت و تضمین ارسال داده ها استفاده می شود. ارتباط بین کلاینت و سرور در این پروتکل معمولا از طریق پورت 80 انجام می شود. همچنین به مجموعه اطلاعات تبادل شده بین دو کلاینت و سرور در این فذآیند، نشست یا session گفته می شود.

روش های درخواست در پروتکل http

پروتکل Http روش‌ های مختلفی را برای درخواست اطلاعات در شبکه وب تعریف کرده‌ است. هر کدام از این روش ها با هدف خاصی در وب سرورها استفاده می شوند. اولین نسخه این پروتکل (نسخه ۱) فقط از روش‌های درخواست GET, POST و HEAD پشتیبانی می کرد. اما در نسخه ۱٫۱ پنج روش جدید تحت عنوان های  OPTIONS, PUT, DELETE, TRACE و CONNECT اضافه شد. نحوه عملکرد هر کدام از این روش‌ ها به‌ طور کامل برای مرورگرها تعریف شده است. بنابراین تمامی مرورگرها و سرورها به راحتی می‌ توانند این روش‌ ها را پیاده‌ سازی کنند. در ادامه به توضیح هر کدام از این روش ها می پردازیم:

  • GET : پیام هایی که در این روش ارسال می شوند تنها شامل یک URL هستند. البته در این پیام ها می توان تعدادی پارامتر دلخواه در انتهای URL اضافه کرد. پارامترهای دلخواه در این پیام ها، در URL ارسال شده، به راحتی قابل مشاهده هستند. این نوع پیام ها پس از ارسال توسط سرور پردازش می شوند و در نهایت نتیجه آن به درخواست کننده یا همان مرورگر بر می گردد.
  • POST : در این نوع پیام ها، پارامترهای دلخواهی که اضافه می شود، قابل مشاهده نمی باشند. زیرا در این روش به جای اضافه کردن پارامترها در انتهای URL، آن ها در درون پیام درخواست شده قرار داده می شوند.
  • HEAD : این درخواست ها مشابه پیام های GET هستند. تفاوت این دو درخواست در این است که در پیام های Head به جای ارسال پاسخ های مربوط به محتوای URL، فقط داده های مربوط به header سایت را ارسال می کنند. این داده ها همان اطلاعاتی هستند که در قسمت <head> یک سند html وجود دارند.
  • PUT : در این روش داده هایی به همراه پیام درخواست به سرور ارسال می شود. سپس از سرور تقاضا می‌ شود که این داده ها را در آدرس مشخص شده ذخیره کند. اگر در محلِ درخواست شده از قبل داده های دیگری قرار ذخیره شده باشند، داده های جدید جایگزین خواهند شد.

  • TRACE : در این روش، سرور داده های ارسال شده را دقیقا به کلاینت یا درخواست کننده باز می‌ گرداند.
  • OPTIONS : زمانی از این روش استفاده می شود که بخواهند، روش های درخواست اطلاعات موجود برای یک آدرس را به دست آورند. این روش از سرور تقاضا می‌ کند تا روش‌ های درخواست موجود برای آدرس فرستاده شده را اعلام کند.
  • DELETE : از این روش برای حذف یک آدرس در سرور استفاده می شود.
  • CONNECT : این روش اطلاعات و داده ها را در پروتکل http به یک تونل TCP/IP تبدیل می‌ کند. این عمل معمولا برای برقراری ارتباط امن (HTTPS) بر روی یک پراکسی سرور ناامن استفاده می‌ شود.
  • PATCH : این روش در سال ۲۰۱۰ به پروتکل http اضافه شد. این روش برای ایجاد تغییرات جزیی بر روی داده ها مورد نظر در سرور استفاده می‌ شود.
more  بیشتر بخوانید : پروتکل https چیست؟

ساختار Response ها و Request ها در Http

پروتکل Http

فرمت پیام های درخواست (Request) و پاسخ (Response) در پروتکل Http مشابه هم هستند. هر دو پیام ها شامل اجزای زیر می باشند:

  • خط شروع کننده : خط شروع کننده دارای 3 بخش است که با Space از یکدیگر جدا شده اند. بخش اول نشان دهنده نسخه HTTP در حال استفاده (Version) است. دومین و سومین بخش از خط شروع کننده، نشان دهنده کد و پیام مربوط به وضعیت ارسال درخواست یا پاسخ است.
  • خطوط Header : خطوط Header اطلاعات لازم برای درخواست و یا پاسخ را آماده می کنند. هر Header در یک خط جدا تعریف می شود و ساختار آن ها به صورت KEY:VALUE است. در این بخش اطلاعاتی شامل نام سرور، اطلاعات مربوط به بدنه و... ذکر می شود.
  • یک خط خالی : پس خطوط Header یک خط خالی قرار می گیرد.
  • بدنه : یک پیام HTTP ممکن است بعد از خطوط Header شامل یک بدنه باشد. در این بخش اطلاعاتی مانند داده های وارد شده توسط کاربر، نتایج یک فرم و... ثبت و سپس به سرور فرستاده می شوند.
متخصص فرانت اِند
طراحی وب را اصولی فرا بگیرید اگر تصمیمتو گرفتی که به صورت حرفه ای به طراحی UI مشغول بشی و کسب درآمد کنی دوره فرانت اند رو از دست نده، چون توی این دوره هر چیزی که برای رسیدن به هدفت نیاز داری رو در اختیارت قرار می دیم. متخصص فرانت اِند arrow_back
7Learn Experts
comment دیدگاه کاربران
علی خسروی replyپاسخ

سلام آقای علامه خیلی منونم از محتوای مفید و کاملتون
فقط یه سوال :‌
شما فرمودید => POST : در این نوع پیام ها، پارامترهای دلخواهی که به URL اضافه می شود، قابل مشاهده نمی باشند.
این جمله با فرمایش استاد آوند تناقض داره البته بنده این طور تصور میکنم استاد فرمودن که اطلاعاتی که از طریق متد پست ارسال میشوند در قسمت message body درخاست قرار می گیرند و بین کاربر و سرور از این طریق منتقل میشوند. ولی از جمله شما میشه این برداشت رو کرد که اطلاعات در متد پست در url هستن فقط قابل مشاهده نیستن.
البته احتمالا برداشت کنونی من اشتباه هست اگر امکانش هست براتون در این مورد یه مقدار توضیح بدید خیلی ممنونم

یه مورد دیگه اینکه :
در این مرحله سرور پایم را دریافت کرده و داده های درخواست شده را در بسته های اطلاعاتی کوچک تری تقسیم می کند.
دراین جمله پیام اشتباها پایم نوشته شده

باز هم از محتوای کاملتون سپاس گذارم منتظر پست های بعدی شما هستم :ـ)

محمد نقلانی replyپاسخ

خیلی مطلب مفیدی بود ممنون بابت گردآوری این مقاله

مهدی علامه

سلام محمد عزیز
خیلی خوشحالم که این مطلب مورد توجهت قرار گرفته🌹

add_circle ارسال دیدگاه

خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :