در این بخش با کوکی های سفارشی و نحوه عملکرد آنها برای ذخیره و بازیابی اطلاعات آشنا خواهیم شد .
مفاهیم و چالش ها
کوکی های سفارشی یکی دیگر از روش های موجود جهت ذخیره اطلاعات به منظور استفاده در سایر صفحات می باشند . کوکی ، فایل های کوچکی می باشند که بر روی هارد دیسک سرویس گیرنده ( و یا حافظه مرورگر وب در صورتی که قصد ذخیره موقت آنها وجود داشته باشد ) ایجاد می گردند .
یکی از مزایای کوکی ها عملکرد غیرمحسوس آنها و عدم آگاهی کاربر نسبت به ذخیره اطلاعات است . علاوه بر این که می توان از کوکی ها در هر یک از صفحات برنامه استفاده کرد ، امکان استفاده از اطلاعات ذخیره شده در آنها طی بازدیدهای آتی کاربر نیز وجود دارد ( مکانی برای ذخیره اطلاعات با طول عمر بیشتر) .
کوکی ها دارای محدودیت ها و یا چالش های مختص به خود نیز می باشند :
-
ذخیره حجم اندکی از اطلاعات : صرفا” امکان ذخیره حجم اندکی از اطلاعات به صورت متن در آنها وجود دارد .
-
عدم ایمن بودن : در صورتی که کاربر کوکی و فایل مربوط به آن را پیدا می کند ، می تواند به سادگی به آن دستیابی پیدا نماید ( خواندن ، حذف ) .
-
امکان حذف آنها توسط کاربران : همواره این احتمال وجود خواهد داشت که کاربران اقدام به حذف کوکی های موجود بر روی کامپیوتر خود نمایند .
-
وجود محدودیت در برخی مرورگرها با توجه به نوع دستگاه سرویس گیرنده : کوکی ها می توانند در تعداد مخاطبان با توجه به نوع دستگاه آنها محدودیت ایجاد نمایند . به عنوان نمونه ، بکارگیری کوکی به همراه مرورگرهای از قبل تعبیه شده در دستگاه های موبایل مناسب نمی باشد .
-
وابسته به تنظیمات کاربر : برخی از کاربران امکان ایجاد کوکی را از طریق مرورگر خود غیرفعال می نمایند . این کار می تواند مسائل متعددی را برای برنامه های وب به دنبال داشته باشد .
عوامل فوق باعث شده است که کوکی به عنوان یک گزینه ضعیف برای ذخیره اطلاعات مورد توجه قرار گیرد . در مواردی که اطلاعات پیچیده ، خصوصی و یا حجم آنها زیاد باشد ، استفاده از کوکی بسیار محدود می گردد .
نحوه ذخیره و بازیابی اطلاعات
فرآیند ذخیره و بازیابی اطلاعات در یک کوکی به سادگی انجام می شود . اشیاء Request و Response یک مجموعه Cookies را ارائه می نمایند . کوکی ها از طریق شی Request بازیابی و مقداردهی آنها از طریق شی Response انجام می شود . برای مقداردهی یک کوکی ، صرفا” می بایست یک شی جدید HttpCookie را ایجاد کرد . در ادامه می توان اطلاعات مورد نظر را در آن و از نوع رشته ذخیره و به پاسخ فعلی وب اضافه کرد .
| ‘ ایجاد شی کوکی Dim cookie As New HttpCookie(“Preferences”) ‘ مقداردهی کوکی cookie(“LanguagePref”) = “English” ‘ اضافه کردن کوکی به پاسخ جاری وب Response.Cookies.Add(cookie) |
کوکی فوق تا زمانی که کاربر مرورگر را close نکند ، وجود خواهد داشت و با هر درخواست ارسال می گردد . برای ایجاد یک کوکی با طول عمر بیشتر ، می توان برای آن یک تاریخ سررسید را تعریف کرد ( عمر مفید ) .
| ‘ مدت زمان حیات کوکی یک سال تعیین شده است Cookie.Expires = DateTime.Now.AddYears(1) |
برای بازیابی کوکی ، می توان از طریق نام استفاده شده در مجموعه Request.Cookies اقدام نمود.
| ‘ بررسی وجود کوکی قبل از دستیابی به آن Dim language As String If Cookie IsNot Nothing Then language = Cookie(“LanguagePref”) End If |
تنها روش موجود برای حذف یک کوکی ، جایگزین کردن آن با یک کوکی است که تاریخ اعتبار آن به اتمام رسیده باشد . کد زیر نحوه انجام این کار را نشان می دهد .
| Dim cookie As New HttpCookie(“LanguagePref”) cookie.Expires = DateTime.Now.AddDays(-1) Response.Cookies.Add(cookie) |
مثال
در این مثال هدف آشنائی با نحوه ایجاد ، مقداردهی و بازیابی یک کوکی است .
در اولین مرتبه ای که صفحه درخواست می گردد به دلیل عدم وجود کوکی مورد نظر ، پیام “کاربر ناشناس ” نمایش داده شده و با ارائه یک text box این امکان در اختیار کاربر گذاشته می شود تا نام مورد نظر خود را جهت ذخیره در کوکی درج نماید . پس از این کار و همزمان با درخواست صفحه و با توجه به وجود کوکی مورد نظر ، یک پیام خوش آمدگوئی نمایش داده می شود . کوکی ایجاد شده در این مثال به مدت یک سال از تاریخ ایجاد ، اعتبار خواهد داشت .
عملیات تشخیص وجود کوکی و نمایش یک پیام خوش آمدگوئی از طریق روتین Page_Load انجام می شود . روتین cmdStoreCookiee_Click مسئولیت ایجاد کوکی و تعیین یک تاریخ اعتبار برای آن را برعهده دارد .
| صفحه CookieExample.aspx |
| <%@ Page Language=”VB” Culture=”fa-IR” UICulture=”fa-IR” %>
<script runat=”server”>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) _Handles MyBase.Load Dim Cookie As HttpCookie = Request.Cookies(“Preferences”) If Cookie Is Nothing Then lblWelcome.Text = “<b>کاربر ناشناس</b>” Else lblWelcome.Text = “<b>کوکی موجود است </b><br><br>” lblWelcome.Text &= “خوش آمدید, “ & Cookie(“Name”) End If End Sub Protected Sub cmdStoreCookiee_Click(ByVal sender As Object, ByVal e As EventArgs) _Handles cmdStoreCookie.Click Dim Cookie As HttpCookie = Request.Cookies(“Preferences”) If Cookie Is Nothing Then Cookie = New HttpCookie(“Preferences”) End If Cookie(“Name”) = txtName.Text Cookie.Expires = DateTime.Now.AddYears(1) Response.Cookies.Add(Cookie) lblWelcome.Text = “<b>کوکی ایجاد گردید</b><br><br>” lblWelcome.Text &= “کاربر جدید : “ & Cookie(“Name”) End Sub</script> <html xmlns=”http://www.w3.org/1999/xhtml” dir=”rtl” > |
شکل ۱ ، نحوه عملکرد برنامه فوق را در اولین مرتبه دستیابی ( و با فرض عدم وجود کوکی ) نشان می دهد .

شکل ۱ : نحوه عملکرد کوکی های سفارشی
و اما آخرین نکته این که ، برخی از ویژگی های ارائه شده در ASP. NET با استفاده از کوکی خدمات خود را ارائه می نمایند . session state که به پیاده کنندگان اجازه می دهد بطور موقت اطلاعات مرتبط با کاربر را در حافظه سرویس دهنده ذخیره نمایند و امنیت فرم ها که این امکان را در اختیار پیاده کنندگان قرار می دهد تا بخش هائی از یک وب سایت را محدود به کاربران تائید شده نمایند ، دو نمونه متداول در این رابطه می باشند .
در بخش هشتم به بررسی Session State خواهیم پرداخت .
دیدگاه خود را بیان کنید.
باید وارد سایت شده باشید برای دیدگاه دادن