کوکی ها در جاوا اسکریپت

به نام خدا با عرض سلام و احترام خدمت شما دوستان عزیز. در ادامه آموزش جاوا اسکریپت این جلسه قصد داریم به مبحث کوکی ها در جاوا اسکریپت بپردازیم.با ما همراه باشید.

کوکی ( Cookie ) چیست؟

 یک فایل متنی کوچک است. که معمولاً برای ردیابی اطلاعاتی مانند تنظیمات اولویت کاربرها  استفاده می شوند.تا  زمانی که کاربر دفعه بعد از وب سایت بازدید می کند. سایت بتواند برای شخصی سازی صفحه را بازیابی کند.

کوکی ها یک مکانیسم ذخیره سازی قدیمی سمت کلاینت هستند. که در ابتدا برای استفاده توسط زبان های برنامه نویسی سمت سرور مانند PHP، ASP و …  طراحی شده بودند. با این حال، کوکی‌ها را نیز می‌توان مستقیماً با استفاده از جاوا اسکریپت ایجاد، دسترسی و اصلاح کرد. 

نکته: یک کوکی می‌تواند تا 4 کیلوبایت باشد. از جمله نام و مقادیر آن. کوکی‌هایی که از این طول بیشتر می‌شوند به‌گونه‌ای برش می یابند که مناسب باشند. 

هشدار: داده‌های حساس مانند رمز عبور یا اطلاعات کارت اعتباری را در کوکی‌ها ذخیره نکنید زیرا ممکن است توسط کاربر مخرب دستکاری شود.
کوکی ها در جاوا اسکریپت

کوکی ها در جاوا اسکریپت

ایجاد کوکی در جاوا اسکریپت

در جاوا اسکریپت، می‌توانید کوکی‌ها را با پراپرتی document.cookie  ایجاد، بخوانید و حذف کنید. این ویژگی تمام کوکی های مرتبط با یک سند را نشان می دهد.

برای ایجاد یا ذخیره یک کوکی جدید، یک رشته  name=value به این پراپرتی اختصاص دهید. مانند:

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

به طور پیش فرض، طول عمر یک کوکی نشست فعلی مرورگر است، به این معنی که وقتی کاربر از مرورگر خارج می شود، از بین می رود.برای اینکه یک کوکی بیشتر از جلسه مرورگر فعلی باقی بماند، باید طول عمر آن را (بر حسب ثانیه) با ویژگی  max-age مشخص کنید.این ویژگی تعیین می کند که یک کوکی قبل از حذف چقدر می تواند در سیستم کاربر باقی بماند، به عنوان مثال،کوکی زیر 30 روز زنده خواهد ماند.

همچنین می توانید طول عمر یک کوکی را با ویژگی  expiresمشخص کنید.این ویژگی یک تاریخ دقیق (در قالب GMT/UTC) زمانی که کوکی باید منقضی شود، به جای افست در چند ثانیه می گیرد.

در اینجا تابعی وجود دارد که یک کوکی را با ویژگی  max-ageاختیاری تنظیم می کند.همچنین می‌توانید از همین تابع برای حذف یک کوکی با عبور مقدار 0 برای پارامتر daysToLive  استفاده کنید.
به‌طور پیش‌فرض، یک کوکی برای همه صفحات وب در یک فهرست یا زیر شاخه‌های آن فهرست در دسترس است.با این حال، اگر  path را مشخص کنید. کوکی برای همه صفحات وب در مسیر مشخص شده و برای همه صفحات وب در همه زیر شاخه های آن مسیر در دسترس است.به عنوان مثال، اگر مسیر روی  / تنظیم شده باشد، کوکی در سراسر یک وب سایت در دسترس است. صرف نظر از اینکه کدام صفحه کوکی را ایجاد می کند.
علاوه بر این، اگر می‌خواهید یک کوکی در زیر  domain  در دسترس باشد. می‌توانید از ویژگی دامنه استفاده کنید.به طور پیش‌فرض، کوکی‌ها فقط برای صفحات دامنه‌ای که در آن تنظیم شده‌اند در دسترس هستند.

اگر یک کوکی ایجاد شده توسط یک صفحه در  blog.example.com ویژگی  pathخود را به/ و ویژگی  domainخود را روی  example.com قرار دهد. آن کوکی همچنین برای همه صفحات وب در backend.example.comportal.example.com در دسترس است. با این حال، شما نمی توانید کوکی ها را خارج از یک دامنه به اشتراک بگذارید.

همچنین یک ویژگی بولی به نام  secureوجود دارد. اگر این ویژگی مشخص باشد، کوکی فقط از طریق یک اتصال امن  مانند HTTPS منتقل می شود.

نحوه خواندن یک کوکی

با مبحث کوکی ها در جاوا اسکریپت همراه شماه هستیم. خواندن یک کوکی کمی پیچیده‌تر است، زیرا ویژگی document.cookie  به سادگی یک رشته حاوی یک سمی کالن و یک لیست با فاصله از همه کوکی‌ها را برمی‌گرداند.(یعنی جفت های name=value، برای مثال , ;firstName=John; lastName=Doe).این رشته دارای ویژگی هایی مانند expirespathdomain و …نیست که ممکن است برای کوکی تنظیم شده باشد.

برای به دست آوردن کوکی منحصر به فرد از این لیست، باید از متد()split  برای شکستن آن به جفت‌های منحصر به فرد  name=value  استفاده کنید. و نام خاص را مانند شکل زیر جستجو کنید:

اکنون می‌خواهیم یک تابع ()checkCookie ایجاد کنیم. که با استفاده از تابع ()getCookie بالا بررسی می‌کند. که آیا کوکی  firstNameتنظیم شده است یا نه. و اگر تنظیم شود، این تابع یک پیام تبریک نمایش می‌دهد. و اگر نه این تابع از کاربر می خواهد که نام کوچک خود را وارد کرده و با استفاده از تابع ()setCookie  که قبلا ایجاد شده بود، آن را در کوکی ذخیره کند.

به روز رسانی یک کوکی در جاوا اسکریپت

تنها راه برای به روز رسانی یا اصلاح یک کوکی، ایجاد کوکی دیگری با name وpathمشابه کوکی موجود است.ایجاد یک کوکی با نام مشابه اما با مسیری متفاوت، سپس کوکی موجود، یک کوکی اضافی اضافه می کند. به عنوان مثال:

حذف یک کوکی در جاوا اسکریپت

برای حذف یک کوکی، کافی است یک بار دیگر آن را با استفاده از همان  name تنظیم کنید. یک مقدار خالی یا دلخواه را مشخص کنید و ویژگی            max-ageآن را روی 0 قرار دهید.به یاد داشته باشید که اگر pathوdomain را برای کوکی مشخص کرده‌اید، باید هنگام حذف آن را نیز درج کنید.

با این حال، برای حذف یک کوکی با استفاده از ویژگی expires ، کافی است. مقدار آن (یعنی تاریخ انقضا) را روی تاریخی تنظیم کنید که قبلاً گذشته است.

به عنوان مثال:

 

خب دوستان گرامی به پایان جلسه کوکی ها در جاوا اسکریپت رسیدیم امیدواریم مورد توجه شما قرار گیرد.

سایر مقالات:

اعتبار سنجی فرم ها در جاوا اسکریپت

ریجکس در جاوا اسکریپت

 

 

 

برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]
اشتراک‌گذاری

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *