PDA

View Full Version : session و مدیریت حافظه



khadem1386
چهارشنبه 28 اسفند 1387, 22:10 عصر
سلام به دوستان

1- ایا Session.Timeout را می توان فقط وابسته به بعضی از Session ها نمود یا اینکه در پایان وقت همه Session های ما کاملا پاک می شود.؟ یعنی میشه کاری کرد که پایان وقت timeout فقط بعضی از Session ها پاک شود؟

2- آیا هنگامی که داریم Session.Timeout مقدار دهی می کنیم و set می کنیم، مقادیری که Session های قبلی در خود ذخیره کردند پاک می شود. برای Session های قبلی چه اتفاقی می افتتد.؟

3- بطور معمول در ایچاد Session چقدر باید صرفه جویی نمود. و آیا حجم یا تعداد زیاد Session ها تا بحال برای شما مشکلی بوجود آورده؟

4- مکان ثبت Session کجاست . عده ای بر این باورند که Session در داخل RAM سرور ذخیره می شود. و عده ای دیگر می گویند داخل RAM یوزر و عده ای دیگر می گویند بصورت یک COOKIE داخل هارد یوزر ذخیره می شود.

اینکه می گویند داخل cookie ذخیره می شود را از جای نسبتا معتبری شنیده ام.

5-پس اگر واقعا اینطور باشد امینت Sessionها هم خیلی جالب نیست. چون در بسیاری از جاها دیده شده که گفته اند هکر ها اصولا به کوکی ها نیز دست رسی دارند.



با تشکر از راهنمایی شما

kashaneh
پنج شنبه 29 اسفند 1387, 08:26 صبح
دوست عزیز

1 - در مورد Session.Timeout هنگام فرارسیدن زمان انقضا، تمام Session های واجد شرایط باید از بین بروند و خصوصی سازی در این مورد نمی تواند وجود داشته باشد
2 - شما به یک نکته دقت نکردید که هر تنظیم میزان TimeOut تنها برای همان Session جاری (کاربر جاری) تنظیم می شود و به Session های قبلی لطمه ای وارد نمی شود چون آنها قبلا با مقداری دیگر تنظیم شده اند
3 - تا آنجا که امکان دارد باید صرفه جویی صورت پذیرد... هم در زمینه میزان اطلاعات ذخیره شده در آنها و هم در مورد زمان صحیح Time Out
4 - آبجکت Session در مرورگرهایی که قابلیت کوکی در آنها فعال نباشد اجرا نمی شود... اما این اصلا به این معنا نیست که Session و کوکی یکسان هستند بلکه ساختار Session ها مانند بسته های توکن (Token) در شبکه است... یعنی برای تبادل داده بین سرور و کلاینت نیاز به این است که سرور بتواند از طریق مکانیزم مرورگر فایل هایی موقتی در کامپوتر کلاینت ایجاد کند... از اینجا کاملا مشخص می شود که اطلاعات اصلی Session ها همگی در سمت سرور ایجاد، ذخیره و مدیریت می شوند... حال چه در Ram یا چه در هارد دیسک باشند این مسئله در درجه دوم اهمیت است، زیرا مسئله اصلی اینجاست که نباید به سرور بابت استفاده از Session ها و Application ها فشار مضاعفی وارد کرد...
5 - به هیچ وجه... مورد 4 به این شبهه به روشنی پاسخ می دهد

موفق باشی

khadem1386
سه شنبه 04 فروردین 1388, 19:51 عصر
اول سال نو مبارک باشد. آرزوی سلامتی و شاد کامی برا شما دارم.



در مورد Session.Timeout هنگام فرارسیدن زمان انقضا، تمام Session های واجد شرایط باید از بین بروند و خصوصی سازی در این مورد نمی تواند وجود داشته باشد
1- منظور ازواجد شرایط چیست؟ وقتی Timeout تمام بشود همه Session ها ی کاربر از بین می روند دیگر. مگر نه؟



آیا هنگامی که داریم Session.Timeout مقدار دهی می کنیم و set می کنیم، مقادیری که Session های قبلی در خود ذخیره کردند پاک می شود. برای Session های قبلی چه اتفاقی می افتتد.؟

2- این را می دانم که Session ها نوعی متغیر اختصاصی برای هر کاربر هستند.
ولی سوال من این است که اگر در میانه راه در یکی از page های میانی، میزان Timeoutرا
تغییر دهیم برای Sessionهای قبلی چه اتفاقی می افتد؟



3- این که می گویید قابلیت ذخیره کوکی را غیر فعال کنیم Session ها هم از کار می افتد خیلی نباید چیزه جالبی باشد.
منظور من این است که بدون Session اصلا نمیشه نفس کشید.
یک سایت دانیامیک را می شه بدون کوکی نوشت ولی بدون Session فکر نمی کنم ( حالا با هر زبانی که می خواد باشه)


مرسی از وقتت

kashaneh
چهارشنبه 05 فروردین 1388, 10:03 صبح
دوست عزیز...

1 - منظور من هم از واجد شرایط همان تمام شدن زمان Session است
2 - اگر برای مثال برای شخص A یک Session با مدت 10 دقیقه ایجاد کنید و سپس در صفحه ای دیگر برای همان شخص A بیایید و مدت Session.TimeOut را روی 5 یا هر چیز دیگری غیر از 10 تنظیم کنید، هیچ تاثیری روی Session این شخص A نخواهد داشت... چون مقدار TimeOut تنها یکبار و آن هم موقع ایجاد Session تنظیم می شود
3 - با این گفته شما که بدون Session طراحی داینامیک غیر ممکن می شود تا حد زیادی موافقم اما این نکته را هم در نظر بگیرید که تمام مرورگرها به طور پیش فرض قابلیت کوکی ها را فعال دارند و معمولا خیلی کم پیش می آید تا کاربر دانسته آنرا غیر فعال کند... ضمن اینکه اکثر سایت های معتبر از قبل به کاربران از این بابت هشدار لازم را می دهند

موفق باشی

khadem1386
دوشنبه 10 فروردین 1388, 09:44 صبح
با تشکر از شما:


چون مقدار TimeOut تنها یکبار و آن هم موقع ایجاد Session تنظیم می شود.
این جمله شما به این معناست که می توانیم برای هر متغیر Session یک زمان انقضای متفاوت در نظر بگیرم. دستور TimeOut تنها برای Sessionهایست که از آن به بعد مقدار دهی می شوند. و به Sessionیی که از قبل تعریف شده اند هیچ کاری ندارد. نظر شما همین است؟

آیا این کد را شما قبول دارید


Session.Timeout=30
Session("something") = something
Session.Timeout=10
Session("something1") = something
Session.Timeout=3
Session("something2") = something
Session.Timeout=40
Session("something3") = something

با تشکر