PDA

نسخه کامل مشاهده نسخه کامل : کوکی و سشن



maryam114
19-11-2010, 00:34
سلام

میشه در مورد مکانیزم دقیق سیستم کوکی ها و سشن ها در سرویس دهنده و سرویس گیرنده توضیح بدهید.
و اینکه توابع مربوط مثلا setcooki() یا session_start() و $_COOKIE و $_SESSION دقیقا چه فرآیندی رو روی سرویس دهنده و سرویس گیرنده اجرا می کنن؟

alizshah
19-11-2010, 18:17
به طور خلاصه
کوکی ها اطلاعاتی هستن که وقتی سایتی رو مشاهده میکنید به مرورگر میفرستند .تا اطلاعات مشخصی رو درباره کاربر بدونند .
در این حالت اطلاعات به مرورگر فرستاده میشه ...



اما سشن از نظر کارکرد خیلی جالبه !!! در سشن اطلاعات در یک فایلی با یک اسم راندوم به صورت فایل در سرور ذخیره میشه و
اسم اون فایل در کوکی قرار داده میشه و به مرورگر فرستاده میشه ..
بنابرین زمانی که کاربر دوباره به سایت برگشت , کوکی ها که در نتیجه همان اسم راندوم به سرور فرستاده میشه . سرور توسط ان اسم و پیدا کردن ان فایل کاربر رو شناسایی میکند

مثال میزم : فرض کنید من به هر یک از دوستانم یک اسم انتخاب میکنم (مثلا یکی سیب , گلابی و هویچ) و بگم که هر وقت که به دم خانه من امدید باید اون اسم خاص خودتون رو بگید تا من اجازه ورود بدم در غیر اینصورت درو باز نخواهم کرد..
بنابرین من توسط اون اسم ها از دفترم هویت شمارو مثل نام, تاریخ تولد و نام پدر و مادر و .. تشخیص میدم
و هردفعه که از خانه من بیرون رفتید یک اسم جدید انتخاب میکنید ... تا دفعه بعد شمارو شناسایی کنم ...



یک نمونه از کوکی های پی سی ورلد :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدمثلا در کوکی اول bbsessionhash اسم کوکی و c1906a3d2c1410ffcb9aa12e5dd7c150 مقدار کوکی که یک فایل به این اسم
در سرور موجود و اطلاعات کاربری من در اونجا ذخیره شده (سشن)

کوکی دوم تنها یک کوکی معمولیه که تاریخ رو به صورت یک عدد نمایش میده و به سرور اخرین بازدید منو شناسایی میکنه .

moein_ak
19-11-2010, 18:32
alizshah خیلی عالی توضیح دادن
فقط یه چیزی که دوست عزیزمون فراموش کردن بگن اینه که میشه زمان معتبر بودن کوکی ها را مشخص کرد ولی سشن ها بعد از یه مدت کوتاهی(بستگی به سرور) حذف میشن(برای همین برای سایت هایی مثل سایت بانک ها به جای کوکی از سشن استفاده میشه)

maryam114
19-11-2010, 19:50
با تشکر از توضیح خیلی خوبتون
با وارد شدن مجدد کاربر به سایت،مرورگر چگونه اون کوکی مشخص رو که فرمودید مقدارش همون اسم رندم هست رو تشخیص می ده که اون کوکی برای چه کاربری است که به سرویس دهنده بفرسته؟ اگه کوکی های زیادی در سیستم موجود باشه مرور گر چطور اونها رو از هم تشخیص میده؟

maryam114
19-11-2010, 20:07
وقتی کاربر وارد سایت می شه بر جه اساسی این اسم رندم ساخته می شه که وقتی مجددا همون کاربر وارد شد، ایاسم منحصر به فرد تشخیص داده می شه؟ (مثلا بر اساس ip سیستم، بر چه اساسی آیدی یک کاربر ساخته می شه؟)

moein_ak
20-11-2010, 00:31
دوست عزیز اسم رندم ساختن اساس نداره
رندم کلا اساس نداره(البته تو کامپیوتر رندم واقعی وجود نداره ولی به نظر من دلیلی نداره بخواین بدونین چجوری این اسم رندم ساخته میشه)
در مورد مررورگر هم یه جدول داره که اسم کوکی ساخته شده و آدرس سایتو تو اون قرار میده و این طوری هر وقت وارد سایت مورد نظر میشین میدونه کدوم کوکی را باید استفاده کنه

alizshah
20-11-2010, 18:07
وقتی کاربر وارد سایت می شه بر جه اساسی این اسم رندم ساخته می شه که وقتی مجددا همون کاربر وارد شد، ایاسم منحصر به فرد تشخیص داده می شه؟ (مثلا بر اساس ip سیستم، بر چه اساسی آیدی یک کاربر ساخته می شه؟)

خوب ببنید دوست عزیز وقتی که یک کوکی از نوع (سشن) به کاربر فرستاده میشه.. محتوای اون سشن اسم فایلی در سرور است که در اون فایل قبل از اینکه سشن به مرورگر فرستاده بشه یوزر کاربری رو در اون ذخیره کردن ...

مثال :
مرورگر به سرور : درخواست لوگین و فرستادن یوزر و پسورد

سرور: ساختن سشن و بررسی اینکه ایا یوزرنیمی با این پسورد وجود دارد یا خیر (از دیتابیس)
اگر وجود داشت یک نام راندوم درست میکند و یک فایل با اون نام میسازد ...
و نام کاربری رو در اون فایل ذخیره میکند (میتونیم هر چیز دیگی ایی رو ذخیره کنیم)
اسم فایل یا همان نام راندوم به من فرستاده میشه , مثلا : aaacccc

خوب حالا چند دقیقه میگزره و من در خواست صفحه اصلی سایت رو میکنم
مرورگر اتوماتیک کوکی رو به سرور میفرسته : aaacccc
توابع سشن میبیند که ایا چنین فایل وجود داره .. اگه وجود داشت ما با php چک میکنید که نام کاریری چی بوده ..و از دیتابیس که اطلاعات من اونجا ذخیره شده اطلاعات دیگهی ای که دارم میکشن بیرون و نمایش میدن ..


اینجا رو هم نگاه کنید :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید