به طور کلی در دنیای کامپیوتر، نشست (نِشَست) یا همان Session به بازهای گفته میشود که در آن “دو یا چند دستگاه” و یا “یک کاربر با یک برنامه” تعامل دارند. هدف از ایجاد نِشَست این است که اطلاعات به صورت Stateful نگهداری و استفاده شوند.
کاربرد نشست
استفاده از سازوکار نشست یا سشن امکانات زیادی را هم برای کاربران و هم برای توسعهدهندگان به همراه دارد. در حضور سشن، کاربران راحتتر با سرویس ارائه شده تعامل میکنند. چراکه اطلاعات و درخواستها را میتوانند بصورت جامع به جریان بندازند.
همچنین توسعهدهندگان میتواند راحتتر درخواستهای کاربران را کنترل و خدمترسانی کنند. علاوه بر این، میتوانند با تحلیل دادههای جمعآوری شده از عملیات کاربران، رفتار آنها را آنالیز کنند.
یعنی برای مثال، اگر کاربری درخواستی ارسال میکند، مشخص باشد که قبلا چه درخواستهایی ارسال کرده است و به عبارتی تاریخچه عملیات آن مشخص باشد.
کاربرد نشست در وب
پروتکل HTTP، یک پروتکل Stateless میباشد. یعنی State هر کانکشن در ارتباط HTTP نگهداری نمیشود. یعنی در یک ارتباط HTTP، هر بار که درخواستی را به سرور ارسال میکنید، انگار یک کاربر جدید (در اصل یک مرورگر جدید) درخواست را ارسال کرده است. این یعنی همان مفهوم Stateless بودن! یعنی State را نگهداری نمیکند و هیچ وقت اطلاع ندارد که کاربری که الان در حال ارسال درخواست هست، آیا قبلا هم درخواستی ارسال کرده یا خیر.
Statless بودن پروتکل HTTP این نتیجه را خواهد داشت که اگر شما داخل یک فروشگاه اینترنتی باشید و جنس اول را به سبد خرید اضافه کنید، و سپس صفحه را رفرش کنید، خواهید دید که سبد خالی هست! چراکه HTTP خاطرش نیست که شما چه کاربری هستید و قبلا چه درخواستیهایی را به سرور ارسال کردید. هر بار که شما صفحه را رفرش میکنید، گویی شخص جدیدی وارد سایت شده است! اما راه حل چیست؟ مرسومترین روش برای حل این مشکل استفاده از Session یا نِشَست میباشد. راهحلهای دیگری نظیر کوکی نیز وجود دارد که قبلا مورد بررسی قرار دادیم.
پس یکی از موارد استفاده از نشست، در دنیای وب میباشد. به این صورت که، کاربر وقتی تعامل خود با سرویس مبتنی بر وب را شروع میکند، یک نِشَست تشکیل شده و از این به بعد کاربر از طریق آن درخواستهای خود را ارسال میکند. به واسطه وجود این نشست، درخواستهای کاربر به صورت Stateful جریان پیدا میکند. توجه کنید که این تنها یکی از کاربردهای نشست میباشد و مفهوم آن در زمینههای مختلف مورد استفاده قرار میگیرد.
بررسی رفتار کاربر بوسیله اطلاعات نشست
یکی دیگر از مزیتهایی که استفاده از نشست با خود به همراه دارد، آنالیز رفتار کاربران است. این مساله در دنیای امروز از اهمیت بسیار بالایی برخوردار است. تعیین رفتار مشتریان در یک فروشگاه اینترنتی گرفته تا کاربرانی که با سیستمعامل خود تعامل میکنند. به همین واسطه، مدت زمان حضور کاربر در بخشهای مختلف، میزان تمایل به ماژولهای مختلف یک برنامه، تعداد کلیک برروی ماژولهای مختلف و … همگی جز مواردی هستند که از نشست کاربران قابل تحلیلاند.
ایجاد نشست
بطور کلی مراحل ایجاد یک نشست به اینصورت است که ابتدا یک کاربر از طریق محیط کاربری پیشِ روی خود، به یک سرویس لاگین میکند. در صورتی که لاگین موفقیتآمیز باشد، برنامه پذیرنده یک نِشَست (Session) و یک شماره نشست (Session ID) برای تشخیص آن ایجاد میکند. از این به بعد کاربر درخواستهایی که دارد را در بستر نشستِ ایجاد شده مطرح میکند، یعنی شماره نشست یا همان Session ID را به همراه درخواستهای خود ارسال میکند تا پذیرنده متوجه شود که درخواستهای دریافتی متعلق به کدام کاربر است.