اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

استفاده از کوکی و جلسه (نشست) برای چه کاری لازمه؟

0 امتیاز
270 نمایش

چرا از کوکی (cookie) و جلسه (session) برای کاربردهای وب استفاده می‌شه؟

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پرسیده شده پنجشنبه ۹ آبان ۱۳۹۲ در PHP توسط prodo  

1 پاسخ

0 امتیاز

قسمت اول پاسخ

ارتباط روی وب در حالت معمولی که همه‌ی ما استفاده می‌کنیم، به صورت درخواست و پاسخ هست. یعنی چی؟
شما یه درخواست به سروری که وب‌سایت روی اون هست ارسال می‌کنین. سرور درخواست شما رو بررسی می‌کنه. بنا به درخواست شما یک پاسخ برای شما ارسال می‌شه و ارتباط شما با سرور قطع می‌شه.
در این ارتباط درخواست و پاسخ، سرور حافظه‌ی دائمی نداره و کسی رو که قبلاً دیده دوباره شناسایی نمی‌کنه. یعنی چی؟

یک مثال

فرض کنید شما به یک بقالی مراجعه می‌کنین و یک خرید انجام می‌دین. مقداری از پول شما پیش بقال می‌مونه و دفعه بعد که به همون بقالی مراجعه می‌کنین بقال با دیدن صورت شما، شما و نتیجه‌ی خیرد قبلی شما رو به یاد می‌آره و بدهی خودش رو به شما پرداخت می‌کنه.
اما در ارتباط کامپیوترها، کامپیوتر سرور چطور شما رو به خاطر بیاره و مطمئن بشه که شما خودتون هستین؟
در مثال بقالی فرض کنید که شخص دیگه‌ای به بقالی مراجعه کنه و درخواست طلبی رو کنه که مال شماست. بقال با یادآوری چهره‌ی شما می‌فهمه که اون فرد شما نیستین و بنابراین پولی بهش پرداخت نمی‌کنه.
بنابراین نیاز داریم که چیزی بین سرور و درخواست کننده مشترک باشه.

حافظه‌ی ارتباطی در رابطه‌ی درخواست و پاسخ

ارتباط در کامپیوتر هم همین طور هست. کامپیوتر سرور باید چیزی از شما در اختیار داشته باشه تا شما رو با اون بشناسه. بنابراین وقتی به کامپیوتر سرور مراجعه می‌کنین، کامپیوتر سرور یک شناسه یا عدد رو به شما می‌ده که شما باید پیش خودتون نگه دارین. دفعه بعد که شما وارد اون سرور می‌شین اون شناسه رو به سرور می‌دین تا مطمئن بشه که شما همون فرد قبلی هستین.

مراحل اولین دفعه‌ای که به یک سرور مراجعه می‌کنین.

  1. شما از سرور صفحه یا چیز دیگه‌ای رو درخواست می‌کنین. (در این مرحله سرور فعلاً کاری به کار شما نداره)
  2. سرور، درخواست شما رو بررسی می‌کنه. (در این مرحله فعلاً شما کاری به کار سرور ندارین)
  3. پاسخ شما توسط سرور آماده می‌شه.
  4. یک شناسه به همراه پاسخ برای شما ارسال می‌شه که مثل کد عضویت هست.
  5. شما پاسخ و شناسه رو دریافت می‌کنین و شناسه رو درجایی ذخیره می‌کنین. (در این مرحله باز سرور به شما کاری نداره)

مراحل دفعه‌های بعدی که شما به سرور مراجعه می‌کنین.

  1. شما از سرور صفحه یا چیز دیگه‌ای رو درخواست می‌کنین. همراه با درخواست شناسه‌ی دفعه‌ی قبل رو هم می‌فرستین.
  2. سرور، شناسه و درخواست شما رو دریافت می‌کنه و بر این اساس درخواست شما رو بررسی می‌کنه.
  3. پاسخ شما توسط سرور آماده می‌شه.
  4. پاسخ برای شما ارسال می‌شه.
  5. شما پاسخ رو دریافت می‌کنین.

قست دوم

متوجه نیاز به یه چیز مشترک مثل کد عضویت شدیم. حالا چرا جلسه و کوکی؟ چرا رمز عبور یا شماره‌ی شناسه‌ی کامپیوتر نه؟
استفاده از شناسه‌ی کامپیوتر برای شناسایی اصلاً گزینه‌ی خوبی نیست. چون ممکنه شما از یک کافی نت به یه وب‌سایت متصل بشین. در این صورت این گزینه نمی‌تونه عمومی باشه.

رمز عبور بدون کوکی و جلسه؟

استفاده از رمز عبور بدون جلسه و کوکی یه مشکلی داره. شما باید با هر درخواست رمز عبور و هم بفرستین. چرا؟ چون سرور هر درخواست رو یه مراجعه‌کننده‌ی جدید در نظر می‌گیره. سرور بقال مثال قبل نیست که که شما رو اون طرف دنیا پشت کامپیوتر ببینه!
به طور کلی ممکنه هر کس راهی پیشنهاد کنه و در تمام این راه‌ها باید چیزی بین سرور و درخواست کننده مشترک باشه و این چیز باید بین دوطرف محرمانه بمونه. این می‌شه همون تعریف کوکی! جلسه یا نشست گاهی به این فرآیند اشتراک‌گذاری این چیز مشترک گفته می‌شه و گاهی به اطلاعات اشتراک گذاری شده.
بنابراین هر پیشنهادی به فلسفه‌ی جلسه و کوکی ختم می‌شه.

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده پنجشنبه ۹ آبان ۱۳۹۲ توسط prodo  
ویرایش شده پنجشنبه ۹ آبان ۱۳۹۲ توسط prodo