سشن یک فناوری مدرن در دنیای وب است که وضعیت کاربران را برای مدت محدودی ذخیره میکند. به کمک سشن، وبسرور میتواند اطلاعات کاربران را بهصورت موقت نگه دارد و هنگام نیاز دوباره به آنها رجوع کند. اما سؤالی که پیش میآید این است: سشن چیست و چطور کار میکند؟ چرا بعضی سشنها بعد از بستن مرورگر پاک میشوند، در حالی که برخی دیگر پایدار باقی میمانند؟
در این راهنما، از نگاه آموزش کسبوکار، به بررسی دقیق سازوکار سشنها، انواع آنها و نحوه ایجاد و مدیریتشان میپردازیم. اگر میخواهید بفهمید چرا سشنها بخش حیاتی تجربه کاربری مدرن هستند و چگونه میتوان از آنها بهطور مؤثر استفاده کرد، این مطلب برای شماست.
تعریف سشن به زبان ساده
حتماً تجربه کردهاید که وقتی محصولی را به سبد خرید یک وبسایت اضافه میکنید، تا مدتی مشخص در سبد باقی میماند، حتی اگر به صفحات دیگر وبسایت بروید. یا وقتی وارد حساب کاربری خود میشوید، تا مدتی هنوز وارد حساب باقی میمانید. دلیل این اتفاق، ایجاد یک سشن اختصاصی توسط سرور برای شما است که اطلاعات ورود، سبد خرید و سایر تنظیمات را ذخیره میکند.
سشن (Session) شامل اطلاعات تعامل کاربر با سیستم در یک دوره زمانی محدود است و روی سرور ذخیره میشود. این اطلاعات میتواند شامل موارد زیر باشد:
وضعیت سبد خرید
تنظیمات زبان یا تم وبسایت
ورود به حساب کاربری
بعد از گذشت زمان مشخص، محتوای سبد خرید یا ورود به حساب کاربری منقضی میشود. دلیل این موضوع محدودیت زمانی سشن است. در اغلب وبسرورها و زبانهای برنامهنویسی، مدتزمان پیشفرض سشن بین ۱۵ تا ۳۰ دقیقه است و در صورت عدم فعالیت کاربر، سشن بهطور خودکار منقضی میشود.
این محدودیت زمانی همچنین به افزایش امنیت کاربران کمک میکند؛ بهویژه در سیستمهای عمومی مانند کافینت، تا دیگران نتوانند به اطلاعات شخصی دسترسی پیدا کنند.
سشن چیست و چگونه کار میکند؟
سشن مکانیسمی برای ذخیره موقت اطلاعات و تعاملات کاربر با سیستم است. از آنجا که پروتکل HTTP بهصورت ذاتی Stateless است (یعنی هیچ اطلاعاتی از درخواستهای قبلی نگه نمیدارد)، سشن این مشکل را حل میکند.
هر بار که کاربر یک درخواست به سرور ارسال میکند، سرور یک شناسه یکتا (Session ID) به او اختصاص میدهد و اطلاعاتی مانند محصولات سبد خرید، نام کاربری و تنظیمات دلخواه را برای مدت محدود ذخیره میکند.
کاربرد سشن چیست؟
سشن نقش حیاتی در حفظ وضعیت کاربران و مدیریت تعاملاتشان با سیستم دارد. کاربردهای اصلی سشن شامل موارد زیر است:
کاهش بار روی مرورگر با ذخیره کمتر اطلاعات روی آن
ارتقای تجربه کاربری با نگهداری موقت تنظیمات و اطلاعات
افزایش امنیت کاربر به دلیل محدود بودن زمان ذخیره اطلاعات
سادهسازی فرایند تبدیل کاربر به مشتری
به بیان ساده، سشن قلب تپنده وب و تجربه کاربری مدرن است، زیرا بدون آن، مرورگر نمیتواند وضعیت کاربر را بین درخواستها حفظ کند.
انواع سشن
سشنها بسته به محل ذخیره اطلاعات و نحوه منقضی شدن، انواع مختلفی دارند. در ادامه با مهمترین آنها آشنا میشویم.
۱. سشنهای سمت سرور
اگر اطلاعات کاربر روی سرور ذخیره شود، به آن سشن سمت سرور (Server-Side Session) میگویند. در این روش، فقط یک شناسه یکتا به مرورگر ارسال میشود تا درخواستهای بعدی به همان کاربر اختصاص پیدا کند و اطلاعات اصلی هرگز به مرورگر فرستاده نمیشود.
مزایا:
مدیریت راحتتر و امکان تمدید یا منقضی کردن سشن
امنیت بالا، چون دادهها روی سرور هستند و هکرها فقط با سرقت شناسه سشن میتوانند دسترسی پیدا کنند
معایب:
مصرف بالای حافظه سرور در صورت افزایش تعداد کاربران
اگر سرور قطع یا ریست شود، سشنها از دسترس خارج میشوند
سیستمهای حساس مانند بانکداری آنلاین معمولاً از این نوع سشن استفاده میکنند.
۲. سشنهای سمت کاربر
در سشن سمت کاربر (Client-Side Session)، اطلاعات مستقیماً روی دستگاه کاربر ذخیره میشود. محل ذخیره میتواند یکی از موارد زیر باشد:
کوکی مرورگر (Cookie)
حافظه محلی (Local Storage)
حافظه سشن مرورگر (Session Storage)
اطلاعات سشن معمولاً رمزگذاری میشوند (با JWT یا روشهای امن دیگر) و با هر درخواست جدید به سرور ارسال میشوند.
مزایا:
دسترسی به اطلاعات حتی در حالت آفلاین
کاهش بار پردازشی و مصرف منابع سرور
معایب:
امنیت پایینتر نسبت به سشنهای سمت سرور
محدودیت اندازه کوکیها یا حافظه محلی
امکان لغو یا منقضی کردن سریع سشن سختتر است
۳. سشنهای مبتنی بر کوکی
در سشنهای مبتنی بر کوکی (Cookie-Based Sessions)، سرور یک شناسه یکتا ایجاد میکند و آن را در قالب کوکی به مرورگر کاربر ارسال میکند. مرورگر این شناسه را ذخیره و در تمام درخواستهای بعدی ارسال میکند تا سرور بتواند دادههای مرتبط را بازیابی کند.
دو نوع کوکی رایج وجود دارد:
کوکی غیرایمن: شامل دادههای کمحساس مانند زبان یا واحد پول ترجیحی کاربر، که میتواند در بستر SSL یا غیر SSL منتقل شود
کوکی امن: شامل اطلاعات حساس مانند دادههای احراز هویت، که حتماً در بستر SSL منتقل میشود
۴. سشنهای بدون کوکی
در سشنهای بدون کوکی (Cookie-Less Sessions)، شناسه سشن به جای کوکی، در آدرس URL قرار میگیرد. بهعنوان مثال:
http://example.com/(S(klnc3sshuaf3ngm3ihnpch2v))/home.aspx
این روش زمانی کاربرد دارد که مرورگر اجازه ذخیره کوکی نمیدهد، اما نسبت به حملات ربودن سشن (Session Hijacking) آسیبپذیرتر است، زیرا URL میتواند به اشتراک گذاشته شود.
۵. سشنهای پایدار
سشن پایدار (Persistent Session)، نوعی سشن است که پس از بستن مرورگر یا خاموش کردن دستگاه، منقضی نمیشود. برای مثال در شبکههای اجتماعی مانند فیسبوک یا اینستاگرام، کاربر پس از ورود، با بستن مرورگر از حساب خارج نمیشود.
در سشنهای مبتنی بر کوکی پایدار، تاریخ انقضای طولانیتری تعریف میشود
در سشنهای بدون کوکی، شناسه سشن میتواند در حافظه محلی یا حافظه سشن مرورگر ذخیره شود
در سشنهای سمت سرور، زمان انقضای دادهها قابل تمدید است و میتوان آن را با روشهای دیگر ترکیب کرد.
کلام آخر
سشنها نقش حیاتی در تجربه کاربری وب دارند و با حفظ وضعیت کاربران، امنیت و کارایی سیستم را افزایش میدهند. چه سشن سمت سرور، سمت کاربر، مبتنی بر کوکی، بدون کوکی یا پایدار باشد، همه آنها با هدف مدیریت موقت یا دائمی اطلاعات کاربران طراحی شدهاند. دانستن این که سشن چیست و انواع آن چگونه کار میکنند، به توسعهدهندگان و صاحبان کسبوکار کمک میکند تجربهای امن و کاربرپسند ارائه دهند و تعامل کاربران با وبسایت یا اپلیکیشن را بهینه کنند.