استفاده از کوکی ها (Cookies)
طراحی اینترنت بر پایه مدل client-Server می باشد. اگر یک سرویس گیرنده بخواهد یک صفحه ASP یا HTML به خصوصی را مشاهده کند، مرورگر و سرویس دهنده وب، احتیاج به انجام مذاکره کوتاهی با یکدیگر دارند. در ابتدا، یک درخواست برای یک صفحه وب برای سرویس دهنده و فرستاده می شود؛ در صورتی که صفحه پیدا شده سرویس دهنده وب، صفحه درخواست شده را برگشت می دهد. بعد از این، مکالمه بین سرویس گیرنده و سرویس دهنده تمام می شود.
فهمیدن این موضوع مهم می باشد که این مکالمه بین مرورگر و سرویس دهنده وب، یک مکالمه بی غرضانه می باشد سرویس دهنده وب هیچ پرونده ای از آنچه که سرویس گیرندگان اخیرا گفته اند و یا درخواستهایی که کرده اند را بایگانی نمی کند به همین دلیل، سایت های وب را اغلب stateless می گویند.
نکته: یک نرم افزار کاربردی زمانی state (پایدار) گفته می شود که آن نرم افزار برای هر کاربر، اطلاعاتی را باقی بگذارد. در یک سایت وب، این مورد وجود ندارد. برای مثال، اگر شما یک فرم بر روی صفحه وب را پر کنید و سپس چند وقت دیگر آن فرم را دوباره بازدید کنید، فیلدهای فرم شامل اطلاعاتی که قبلا وارد کرده اید را نخواهد داشت. به بیان دقیق تر، فیلدهای فرم خالی خواهند بود. زیرا سایت های وب فاقد state می باشند و به آنها stateless میگویند.
سایت های وب را می توان مجبور کرد که Stateless نباشند. آبجکت Session ، یکی از آبجکت های پیش ساخته ASP، به همین منظور طراحی شده است که اطلاعات کاربر را وقتی کاربر از سایت وب بازدید می کند، نگهداری نماید. اگرچه، آبجکت Session برای کارکردن ساده می باشد، اما چندین ایراد دارد.
اولا، اطلاعات ذخیره شده در آبجکت session در حافظه سرویس دهنده وب برای مدتی که هر کاربر از سایت بازدید میکند ذخیره می شود. اگر صدها یا هزاران کاربر دارید که به طور همزمان از سایت وب بازدید می کنند، استفاده از آبجکت session می تواند به کارایی سرویس دهنده شما آسیب برساند.
دوما، session تا وقتی که کاربر در حال بازدید از سایت میباشد state باقی می ماند. اگر بخواهید در طول روزها، هفته ها یا سالها به صورت State باقی بمانید، آبجکت session قادر انجام این کار نخواهد بود. با وجود معايب آبجکت session ، این آبجکت یک مکانیزم ساده برای پشتیبانی state برای
پریودهای کوتاه زمانی می باشد. برای نگهداری اطلاعات کاربر برای مدت زمان طولانی، از کوکی ها استفاده می شود.
کوکی ها چیستند؟
کوکی ها، بیت های اطلاعاتی کوچکی می باشند که مانند رشته ها و مقادیر عددی، بر روی کامپیوتر سرویس گیرنده برای مدت زمان معینی ذخیره می شوند. وقتی کوکی ها بر روی کامپیوتر سرویس گیرنده ساخته می شوند، سازنده آنها باید زمان خاتمه یافتن آن ها را معین نمایند. بعد از اینکه یک کوکی به پایان کار خود می رسد، به صورت خودکار خودش را از کامپیوتر سرویس گیرنده پاک می کند.
وقتی کوکی ها برای اولین بار در چندین سال پیش بر روی Netscape Navigator2.0 ظاهر شدند، بسیاری از افراد به کوکی ها به عنوان تهدید امنیتی نگاه کردند، زیرا کوکی ها می توانند اطلاعات را بر روی کامپیوترتان ذخیره کنند. مردم ترسیدند که کوکی ها آدرس های اینترنتی محبوب آنها را پاک کنند، این نگرش امروزه عمومیت ندارد. هر چند، شخصا فکر می کنم همیشه نیمی از کاربران وب وجود خواهند داشت که کوکی ها را هرگز نخواهند پذیرفت.
امروزه سایت های وب اصلی بسیار بزرگ، از کوکی ها برای ذخیره کردن انواع اطلاعات استفاده می کنند تا کاربران را از دوباره وارد نمودن این اطلاعات باز دارند. برای مثال، اگر شما یک account بر روی سایت وبی مثل !My Yahoo دارید، یک کوکی با نام کاربریتان بر روی کامپیوتر شما ذخیره شده است. به این خاطر که هر وقت از این سایت بازدید می کنید نام کاربری و کلمه رمزتان را وارد نکنید.
احتیاط کنید همه مرورگرها برای کاربران یک گزینه را فرآهم می کنند که از پذیرفتن کوکی ها بر روی کامپیوترشان ممانعت به عمل می آورد. تمام مرورگرهای جدید به صورت پیش فرض کوکی ها را می پذیرند، با این وجود، هیچ تضمینی وجود ندارد که تمامی کاربران کوکی ها را بپذیرند.
وقتی یک سایت وب، یک کوکی را بر روی کامپیوتر سرویس گیرنده می نویسد، تنها کاری که سایت وب بعد می تواند انجام دهد خواندن مقدار کوکی می باشد. مسئولیت مرورگر این است که رد سایت هایی که کوکی را ساخته دنبال کند، و فقط به کوکی هایی که به وسیله سایت های وب مناسب ایجاد می شوند، اجازه خوانده شدن را بدهد. کوکی ها به دو روش می توانند بر روی کامپیوتر سرویس گیرنده ذخیره شوند. تصور کنید که می خواهید ۳ مقدار را بر روی کامپیوترهای بازدید کننده سایت تان ذخیره کنید: آخرین باری که از سایت تان بازدید کرده اند، نام هایشان و اطلاعات مرورگر شدن (به وسيله هدر HTTP USER-Agent ) یک روش که این بخش کوچک از اطلاعات می تواند بر روی کامپیوتر سرویس گیرنده ذخیره شود استفاده از سه کوکی مجزا می باشد، شما می توانید این کوکی ها را Name،ListVisit و Lser AgentString بنامید، راه دیگر استفاده از Keys (کلیدها) می باشد.
هر کوکی می تواند به دلخواه، یک مجموعه از کلیدها را داشته باشد، هر کلید را می توان برای ذخیره یک سری از اطلاعات مطلوب ذخیره کرد. هر کوکی می تواند از صفر تا تعدادی کلید داشته باشد همانند یک مجموعه که می تواند صفر تا تعدادی عضو داشته باشد و استفاده از کلیدها به شما اجازه می دهد که کوکی های ساخت یافته بیشتری را بسازید. برای مثال، اگر بخواهید از کوکی ها برای ذخیره اطلاعات یک کاربر استفاده کنید، منطقا ایجاد یک کوکی تنها به نام UserInfirmation که برای هر تکه از اطلاعات یک کلید دارد عاقلانه تر می باشد (از اینکه کوکی های منحصر به فردی برای هر تکه از اطلاعات ایجاد نمایید).
در تصویر زیر به مثالی درباره استفاده از کوکی ها پرداخته شده است:
چگونه با استفاده از آبجکت Request کوکی ها را بخوانیم
کوکی ها با استفاده از هدرهای HTTP، ذخیره و خوانده می شوند. هر وقت مرورگر درخواست یک صفحه وب می کند، برای مرورگر، کوکی هایی که سایت وب فعلی ساخته است ارسال می گردد. شما می توانید از هدر Cockie HTTP به منظور خواندن کوکی ها استفاده کنید. برای مثال، اگر شما یک صفحه ASP بر روی سرویس دهنده وبتان ایجاد کرده اید که کد زیر را دارد.
شما یک فهرست از تمامی کوکی های فعلی که بر روی کامپیوتر سرویس گیرنده موجود می باشند و به وسیله اسکریپت روی سایت وبتان ساخته شده اند را می بیند. این فهرست زوج های نام/مقدار را می سازد که در آن هر نام با علامت مساوی (=) از مقدارش جدا شده است، و هر زوج نام/مقدار به وسیله علامت نقطه ویرگول (;) از یکدیگر جدا شده اند. خوشبختانه، مجبور نیستید که مقادیر کوکی ها را تکه تکه نمایید زیرا آبجکت Request خودش این کار را برای شما انجام می دهد.
آبجکت Request شامل یک مجموعه دیگر، به نام مجموعه cookies می باشد. این مجموعه برای خواندن مقادیر کوکی ها مورد استفاده قرار می گیرد و به خاطر اینکه یک مجموعه می باشد، از دستور زبان زیر برای خواندن کوکی ها استفاده می شود.
[(Requset.Cookies(CookieName) [(KeyName
منبع: نوپرداز nopardazco.com
0 دیدگاه