تفاوت بین Cookie، session و viewstate

بوسیله علیرضا پایدار | 1396/6/18 | مجموعه برنامه نویسی

0 نظر

تفاوت بین Cookie، session و viewstate

در این مطلب می خواهیم تفاوت بین Cookie، session و viewstate را شرح دهیم. قبل از اینکه تفاوت این سه مورد را بیان کنیم بهتر است تعریف و کاربرد Cookie، session و viewstate را بدانیم.

چیز هایی که باید درباره کوکی ها بدانید

کوکی ها، فایل های کوچک، حروف و یا اعدادی هستند که در کامپیوتر شما (منظور هر دستگاهی که به اینترنت دسترسی دارد) ، در زمانی که از وب سایتی خاص دیدن می کنید، دانلود می شوند. می توان کوکی ها را مانند کلید در های مجازی در حافظه سیستم کامپیوتر ها تشبیه کرد که با هر بار بازدید از یک وب سایت خاص، درب مخصوص به آن وب سایت با کوکی مربوطه باز خواهد شد. معمولا هر بار بصورت خودکار فایل های کوکی در فایل کوکی (حافظه ای در مرورگر شما) شامل موارد زیر می شوند:

  • نام سروری که کوکی را ایجاد کرده است.
  • طول عمر کوکی
  • یک مقدار خاص که معمولا عددی تصادفی و یکتا است.

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

 


Cookie چیست؟

کوکی ها معمولا فایل های کوچک متنی هستند که با ID از هم متمایز می شوند و در مرورگر کامپیوتر های شما و یا در پوشه Program Data ذخیره می شوند. هر زمان که شما از یک سایت که از کوکی ها استفاده می کند، بازدید کنید، اطلاعات شما (برای مثال: IP، نام کاربری، رمز عبور ، آدرس ایمیل و ...) در کامپیوتر شما ذخیره خواهد شد، سپس اطلاعات مورد نظر، دفعه بعد که شما بخواهید به همان سایت سر بزنید، از طریق ID کوکی که به کامپیوتر شما و سایت مورد نظر اختصاص داده شده است، بار گذاری می شود و دیگر نیازی نیست شما عملیاتی مانند، وارد کردن رمز عبور و نام کاربری و یا حتی پر کردن مجدد سبد خرید را انجام دهید. همچنین در بعضی از سایت ها تنظیماتی از قبیل انتخاب رنگ و پوسته به کاربران می دهند که این اطلاعات نیز می توانند در کوکی ها ذخیره شوند و دفعه بعد که کاربر وارد آن سایت شد، رنگ و یا پوسته مورد نظر که قبلا یک بار توسط کاربر انتخاب شده است، برای وی به نمایش گذاشته شود.

اغلب وب سایت هایی که دیتابیس های خیلی بزرگی دارند، از کوکی استفاده می کنند. کوکی ها به غیر از آدرس url وبسایت مورد نظر، اغلب اطلاعات زیادی را در خودشان ذخیره نمی کنند. اطلاعاتی اصلی که اغلب در کوکی ها ذخیره می شوند شامل: طول عمر کوکی و یکسری اعداد تصادفی می باشند. از آنجایی که کوکی ها در خود اطلاعات خیلی کمی را ذخیره می کنند، اغلب خیلی سخت می شود که اطلاعات هویتی و محرمانه کاربران را از این طریق فاش کرد، اما این دلیل بر این نیست که کوکی ها امن و غیر قابل نفوذ هستند. روش های خیلی زیادی وجود دارند که می توان از طریق کوکی ها اطلاعات هویتی ، محرمانه و یا تجاری کاربران را فاش کرد.

به صورت کلی دو نوع کوکی داریم: کوکی های موقت و کوکی های مداوم.

کوکی های موقت یا session cookie چیست؟

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

 

کوکی ها چه مقدار اطلاعات را می توانند در خود جای دهند؟

در جواب به این سوال باید گفت که بستگی به این دارد که کاربران از چه مرورگری استفاده می کنند. برای مثال در internet explorer نسخه 6، می توان به اندازه 4 کیلوبایت را در هر کوکی ذخیره نمود و تعداد کوکی هایی که در هر دامنه می توان ایجاد نمود، 20 عدد می باشد.

در مرورگر های دیگر مانند کروم نسخه 4 به بالا و موزیلا نسخه 2 به بالا و همچنین IE نسخه 8 به بالا این مقادیر بسیار بالاتر می باشند. اما به صورت کلی می توان گفت که هر کوکی تقریبا می تواند بین 10 تا 100 کیلو بایت را به خود اختصاص دهد.

View State چیست؟

View State متدی در چارچوب ASP.net می باشد که می تواند مقادیر کنترل های یک صفحه وب را در خودش ذخیره کند. زمانی که عمل postback در صفحه ای اتفاق می افتد، اگر نیاز باشد که مقادیر فعلی کنترل های html حفظ شود، می توان از view State استفاده نمود. بصورت کلی می توان گفت که view state جهت حفظ نمودن مقدار فعلی یک کنترل پس از هر بار رخ دادن عمل postback می باشد.  Postback عملی است که در آن یک کنترل در یک صفحه وب نیاز دارد تا اطلاعاتی را به سرور بفرستد و از سرور پاسخی بگیرد. مثلا با زدن دکمه ارسال پیام در حساب ایمیل، و نمایش پیغام ایمیل شما با موفقیت فرستاده شد و یا ... ، یک عمل postback انجام گرفته است.

View State ها چه مقدار اطلاعات را می توانند در خود جای دهند؟

همانطور که گفتیم این متد تنها برای چارچوب ASP.net می باشد و هیچ متد مشابه ای در چارچوب های دیگر ندارد. View state ها می توانند مانند session  ها اطلاعات نامحدود را در خود جای دهند. اما استفاده از این متد تنها در زمان postback یک صفحه می تواند صورت گیرد. اینکه برنامه نویس چقدر می تواند اطلاعات را در این روش به صورت موقت ذخیره سازی کند، در جواب می تواند گفت که هر مقدار که بخواهد، اما مانند روش session هر چه مقدار ذخیره شده در این حافظه ها بیشتر باشد، سرعت زمان دستیابی به آن اطلاعات نیز با زیاد شدن بازدید کنندگان در وب سایت مربوطه کاهش خواهد یافت.

Session چیست؟

هنگامی که صحبت از اطلاعات خیلی محرمانه و حیاتی می کنیم، می تواند از session  استفاده نمود زیرا این اطلاعات فقط در سرور نگه داری و ذخیره خواهند شد. در این روش تنها ID و یا شناسه Session در مرورگر ها ذخیره می شوند. هر بار که بازدید کننده به سرور وب سایت مربوطه سر بزند، شناسه session ذخیره شده در مرورگر اش با شناسه ذخیره شده در سرور وب سایت مربوطه مقایسه می شود و در صورت یکی بودن اطلاعات مورد نیاز واکشی و استفاده خواهد شد.

Session ها چه مقدار اطلاعات را می توانند در خود جای دهند؟

 از لحاظ ذخیره اطلاعات و حجم نیز session  ها به نحوی می توانند بینهایت داده را (به اندازه فضای موجود در سرور)  در خود جای دهند البته بالا بردن حجم session در وب سایت ها کار معقولانه ای نمی باشد، زیرا بازدید کنندگان در یک وب سایت می توانند تعداد بسیاری باشند و مثلا اگر 50 بازدید کننده بخواهند همزمان از session هایی با مقادیر زیاد استفاده کنند، سرعت زمان دستیابی به اطلاعات بسیار پایین خواهد آمد که منجر به کند شدن سایت خواهد شد.

حتما تا اینجا متوجه شده اید که اطلاعات را می توان در دو قسمت سمت سرور و سمت کلاینت ذخیره نمود. در سمت کلاینت (یا همان مرورگر سیستم کامپیوتر شما) امنیت اطلاعات را نمی توان تضمین نمود، بلعکس در سمت سرور می تواند این تضمین را داد جای داده ها امن می باشد. شاید سوال کنید که پس چرا دیگر از کوکی ها استفاده می کنیم؟

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

نتیجه گیری - تفاوت بین Cookie، session و viewstate

در این مطلب مفاهیم کلی و اصلی cookie، session و viewstate را شرح دادیم. همانطور که در این مطلب خواندید، هر کدام از این سه روش مزیت ها و چالش های خود را دارند. برای مثال view state همانند کوکی در سمت مرورگر ها ذخیره می شود هدف استفاده از آن با کوکی فرق داشت. همچنین دیدیم که کوکی ها حجم اطلاعات محدودی را می توانند در خود نگه دارند و همچنین نمی بایست اطلاعات حساس را در آن ها ذخیره کرد. در آخر دریافتید که session ها می توانند امنیت اطلاعات کاربران را تضمین کنند و همچنین داده هایی را با حجم بالا در خود ذخیره سازند، اما سرعت دستیابی به اطلاعات در روش کوکی ها بالا تر بود.

پس استفاده از کوکی و session برای مهندسین که از چارچوب هایی غیر از ASP.net استفاده می کنند، برای بهینه سازی سرعت وب سایت و توسعه آن الزامی است و هر کدام ویژگی های خود را دارند. از طرف دیگر چارچوب قدرتمند ASP.net امکاناتی مانند view state ، View application و ده ها امکانات دیگر را برای مهندسین علاقه مند به این چارچوب فراهم نموده که آن ها نیز می توانند علاوه بر استفاده از session ها و کوکی ها ، از دیگر امکانات این چارچوب برای بهینه سازی و توسعه نرم افزار های تحت وب خود استفاده نمایند.

منابع استفاده شده

توجه : کپی مطالب با ذکر منبع بلا مانع می باشد

 


چنانچه این خبر مورد رضایت شما می باشد آن را با دوستانتان به اشتراک بگذارید