thregence
جامع ترین و کامل ترین مرجع آموزش هک و امنیت و تست نفوذ

پروتکل‌های Stateless و Stateful

4 132

پروتکل‌ها را می‌توان به دو دسته Stateless و Stateful تقسیم کرد. تفاوت این دو دسته در نگهداری اطلاعات مربوط به ارتباطات می‌باشد. یعنی سرور به هنگام برقراری یک ارتباط از سمت کاربران، اطلاعات و حالیت (State) ارتباط را نهگداری بکند و یا خیر.

پروتکل Stateless

HTTP یک نمونه پروتکل Stateless  است. برای فهم بهتر این دسته‌بندی، با یک مثال شروع می‌کنیم. فرض کنید یک لیست خرید برای منزل دارید و می‌خواهید همه آن‌ها را از یک فروشگاه اینترنتی تهیه کنید. این لیست شامل، چند ماده شوینده، مقداری موارد خوراکی و چند وسیله زینتی می‌باشد. وقتی وارد وب سایت فروشگاه می‌شوید، باید همه این‌ها را در سبد خرید خود اضافه و سپس خرید خود را نهایی کنید. اما اینجا یک مشکل وجود دارد:

 Stateless بودن پروتکل HTTP. حالا Stateless  بودن HTTP چه مشکلی را ایجاد می‌کند؟

HTTP یک پروتکل Stateless

Stateless بودن HTTP  به این معناست که اطلاعات ارتباطاتی که بر بستر این پروتکل هستند، ذخیره نمی‌شود. در اصل ارتباطات در این پروتکل فاقد State هستند. به بیان ساده‌تر، هر درخواستی که بر بستر  HTTP به یک سرور ارسال می‌شود، گیرنده فکر می‌کند که کاربر جدیدی در حال ارسال درخواست است، انگار که پروتکل HTTP  حافظه‌ای ندارد و برایش مهم نیست که هر کاربر قبلا چه درخواست‌هایی ارسال کرده است و چه کارهایی در وب‌سایت انجام داده است.

این به این معناست که اگر در فروشگاه یک ماده شوینده را به سبد خرید اضافه کنید و سپس به صفحه مربوط به مواد خوراکی بروید، ماده شوینده از سبد شما حذف می‌شود! چرا که با ارسال درخواست جدید (رفتن به بخش مواد خوراکی) گیرنده فکر می‌کند کاربر جدیدی وارد بخش خوراکی شده است، بدون اینکه بداند که کاربر قبلا در بخش مواد خوراکی حضور داشته است. البته برای حل این مشکل راه‌حل‌های زیادی نظیر استفاده از کوکی وجود دارد.

پس پروتکل‌های Stateless دسته‌ای از پروتکل‌های شبکه هستند که گیرنده حالت ارتباط و اطلاعات ارتباط را در خود ذخیره نمی‌کند. یعنی اگر یک کاربر 10 درخواست پشت هم به یک سرور ارسال کند، گیرنده در هر 10 درخواست دریافت شده، فکر می‌کند که کاربر جدیدی در حال ارسال درخواست است.

از نمونه پروتکل‌های Stateless می‌توان به HTTP، UDP، SNMP  و IP اشاره کرد.

پروتکل Stateful

در مقابل دسته پروتکل‌های Stateless، پروتکل‌های Stateful  قرار دارد. این دسته از پروتکل‌ها حالت ارتباط را ذخیره می‌کنند. به عبارت دیگر، این دسته از پروتکل‌ها درخواست‌های کاربران را در نظر دارند. برای مثال، FTP  یک پروتکل Stateful است. اگر شما 10 درخواست به یک FTP Server ارسال کنید، چون FTP یک پروتکل Stateful است، سرور می‌داند که همه این 10 درخواست از سمت یک کاربر به دست او رسیده است.

مقایسه پروتکل‌های Stateless و Stateful

در جدول زیر به مقایسه پروتکل‌های Stateless و Stateful می‌پردازیم:

پروتکل‌های Statefulپروتکل‌های Stateless
سرور اطلاعات Session را ذخیره می‌کند.اطلاعات Session توسط سرور ذخیره نمی‌شود.
سرور از پیچیدگی نسبی بیشتری برخوردار است.طراحی سرور را ساده‌تر می‌کند.
اطلاعات کاربر باید به درستی ذخیره شود و به هنگام خطا به درستی بارگیری شود. مدیریت خطا در این دسته‌بندی دشوار است.به هنگام خطا، این مدل بهتر عمل می‌کند، چرا که نیاز نیست اطلاعاتی بازگردانی شود.
تراکنش‌ها سرعت بیشتری برای انجام شدن نیاز دارند.تراکنش‌ها در این پروتکل بسیار سریع‌تر هستند.

ترجنس | thregence.ir
آکادمی ترجنس | edu.thregence.ir
اینستاگرام | instagram.com/thregence
تلگرام | t.me/thregence
یوتوب | https://bit.ly/30mGowo
آپارات | aparat.com/thregence 

4 نظرات
  1. […] پروتکل‌های Stateless و Stateful […]

  2. […] پروتکل‌های Stateless و Stateful […]

  3. […] پروتکل‌های Stateless و Stateful […]

  4. […] پروتکل‌های Stateless و Stateful […]

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.