تفاوت Cookie و Sessions چيست؟

يک کوکي مي تواند اطلاعات را در مرورگر کاربر تا وقتي که حذف بشود نگه دارد.

در حالت کلي مفهوم يک session را بايد از روي حالت ها و وضعيت هاي مختلف وب اپليکيشن در زماني که يک يوزر با آن در ارتباط است، بررسي کرد. يک session نمونه اي از کنش هاي متقابل يک يوزر با يک وب اپليکيشن است اما تاکيد بر اين موضوع در اينجا نميتواند کمک زيادي در فهم قضيه نمايد. در حال حاضر براي يک web session بهتر است از اين باب وارد شويم: " session ساختاري از داده است که وب اپليکيشن از آن براي نگهداري موقتي اطلاعات استفاده ميکند. اين اطلاعات موقتي فقط در زماني که يوزر با وب اپليکيشن در ارتباط است کارايي داشته و خصوصيات يوزر را بيان ميکند. براي مثال شما ميتوانيد نام يوزر را در session ذخيره کنيد تا ديگر براي هر بار ارتباط با وب اپليکيشن، نيازي به ارسال کوئري نباشد يا مثلا ميتوانيد در session، اطلاعات مربوط به ارتباط صفحات با يکديگر را ذخيره نماييد (براي مثال بين صفحات مرتبط با پروسه پرداخت اينترنتي). از طرف ديگر ميتوان session را به ديد يک حافظه موقت ديد که بسرعت قابل دسترسي است و به هر يوزري که قصد استفاده از اپليکيشن را دارد، تخصيص داده ميشود و در نهايت هنگام خروج يوزر از وب اپليکيشن، از بين ميرود. از ديد کلي اين تمام آن چيزي بود که ماهيت يک session را نشان ميدهد اما اگر بخواهيم کمي ريزتر از session بدانيم، بايد گفت که مکانيسم کاري و نحوه پياده سازي آن در اپليکيشن هم در مراحل بعدي نکات مهمي هستند که بايد از آن ها سر در بياوريم. داستان را ادامه ميدهيم: اين حافظه موقت ميتواند بصورت يک فايل متني در file system، در يک ديتابيس و يا بر روي حافظه داخلي برنامه اي که اپليکيشن را اجرا ميکند، وجود داشته باشد.
 

براي مشاوره همين حالا با کارشناسان ما تماس بگيريد:شرکت طراحی سایت بهپردازان یک شرکت معتبر در زمینه طراحی سایت فروشگاهی، طراحی سایت شرکتی حرفه ای میباشد که آماده مشاوره رایگان در جهت توسعه کسب و کار اینترنتی میباشد.

Session يکي از آن دسته مفاهيمي است که در علم IT بسته به موقعيت خود ميتوان به چيزهاي مختلفي اشاره داشته باشد: shell session، tcp session، login session، desktop session، browser session، server session و ... .همين موضوع است که باعث شده تا کنون نتوانيم دقيقا درک صحيحي از يک session داشته باشيم. اين مشکل تنها محدود به session نميشود و مفاهيم ديگري نظير cache هم داراي همين مشکل هستند: database cache، browser cache، framework cache، network cache و ... . خوب...! از اين بحث هاي حاشيه اي که بگذريم، اولين چيزي که بايد در مورد session ها بدانيم، استفاده اي است که از آن ها ميشود.

 

يک session به چه دردي ميخورد؟

در حالت کلي مفهوم يک session را بايد از روي حالات و وضعيت هاي مختلف وب اپليکيشن در زماني که يک يوزر با آن در ارتباط است، بررسي کرد. از نظر من يک session نمونه اي از کنش هاي متقابل يک يوزر با يک وب اپليکيشن است اما تاکيد بر اين موضوع در اينجا نميتواند کمک زيادي در فهم قضيه نمايد. در حال حاضر براي يک web session بهتر است از اين باب وارد شويم: " session ساختاري از داده است که وب اپليکيشن از آن براي نگهداري موقتي اطلاعات استفاده ميکند. اين اطلاعات موقتي فقط در زماني که يوزر با وب اپليکيشن در ارتباط است کارايي دارد و خصوصيات يوزر را بيان ميکنند. براي مثال شما ميتوانيد نام يوزر را در session ذخيره کنيد تا ديگر براي هر بار ارتباط با وب اپليکيشن، نيازي به ارسال کوئري نباشد يا مثلا ميتوانيد در session، اطلاعات مربوط به ارتباط صفحات با يکديگر را ذخيره نماييد (براي مثال بين صفحات مرتبط با پروسه پرداخت اينترنتي). از طرف ديگر ميتوان session را به ديد يک حافظه موقت ديد که بسرعت قابل دسترسي است و به هر يوزري که قصد استفاده از اپليکيشن را دارد، تخصيص داده ميشود و در نهايت هنگام خروج يوزر از وب اپليکيشن، از بين ميرود. از ديد کلي اين تمام آن چيزي بود که ماهيت يک session را نشان ميدهد اما اگر بخواهيم کمي ريزتر از session بدانيم، بايد گفت که مکانيسم کاري و نحوه پياده سازي آن در اپليکيشن هم در مراحل بعدي نکات مهمي هستند که بايد از آن ها سر در بياوريم. داستان را ادامه ميدهيم: اين حافظه موقت ميتواند بصورت يک فايل متني در file system، در يک ديتابيس و يا بر روي حافظه داخلي برنامه اي که اپليکيشن را اجرا ميکند، وجود داشته باشد.

يک session در يک زمان معين بوجود آمده و در زمان معين ديگري نيز به پايان مي رسد. سشن براي ذخيره کردن اطلاعات به طور موقت است و به اين علت استفاده مي شود که کاربر مجبور به چندين بار وارد نمودن اطلاعات خود نباشد. بيشترين کاربرد session در ورود اطلاعات کاربر (کلمه کاربري و رمز عبور) است.

 

هنگامي که در يک وب سايت نياز به اين مي باشد که يک سري اطلاعات بين کاربر و سرور مشترک باشد تا پس از هر بار ورود اطلاعات مذکور مجددا از کاربر خواسته نشود از مفهومي به نام session استفاده مي شود. متغير جلسه (منظور از جلسه اين است که پس از وارد کردن اطلاعات ورود به سايت، نرم‌افزار وبگاه يک جلسه ايجاد و در آن اطلاعات ورود را ذخيره نموده و تا زمان مشخص شده، اين اطلاعات ذخيره مي‌مانند.) اطلاعات مربوط به  يک کاربر را  نگه مي دارد. اطلاعات جلسه تماما بر روي سرور ذخيره شده، در يک بازه زماني معين شروع شده و در زمان معين ديگري به پايان مي رسد.  به هر حال ، بايد بدانيد اطلاعات جلسه کاملا موقت بوده و بعد از خروج کاربر از وب سايت شما از بين مي روند. در صورتيکه شما مي خواهيد از اطلاعات سشن برايتان در سرور باقي بماند بايد آن اطلاعات را در بانک اطلاعاتي سرور ذخيره نمائيد.

 

به عنوان مثال هنگامي که يک کاربر در يک فروشگاه اينترنتي قصد خريد چند محصول در صفحات جداگانه را دارد در صورتي که از session يا مفاهيم مشابه استفاده نشود، کاربر پس از انتخاب يک کالا با ورود به صفحه جديد براي درخواست کالايي ديگر، کالاي قبلي خودش را از دست خواهد داد. چرا که اطلاعات صفحه قبل در جايي ذخيره نشده است؛ اما در صورت استفاده از سشن مي توان با استفاده از سبد خريد کالاهاي مورد نظر کاربر را حتي در صورت تغيير صفحه وب در يک مکان مشخص ذخيره کرد.

 

تفاوت اصلي سشن با cookie در اين است که session اطلاعات را بر روي سرور ذخيره مي کند، اما cookie اطلاعات را بر روي کلاينت (کامپيوتر کاربر) نگهداري مي کند