آموزش جاوا اسکریپت – کوکی ها در جاوا اسکریپت

آموزش جاوا اسکریپت

در این بخش از سری آموزش جاوا اسکریپت قصد داریم به شما نحوه ایجاد, خواندن, بروزرسانی و حذف کوکی ها در جاوا اسکریپت را آموزش بدیم.

 

کوکی (Cookie) چیست

یک کوکی فایل متنی کوچکی است که به شما اجازه ذخیره حجم کمی از داده ها (نزدیک ۴Kb) را روی کامپیوتر کاربر می دهد.

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

کوکی ها یک مکانیزم ذخیره سازی سمت کاربر قدیمی هستند که در اصل برای استفاده در زبان های اسکریپت نویسی سمت سرور مثل PHP, ASP و غیره.. طراحی شده اند.

به هرحال, کوکی های می توانند بصورت مستقیم توسط جاوا اسکریپت ایجاد, ویرایش و قابل دسترس باشند اما این فرایند کمی پیچیده و بهم ریخته است.

نکته: یک کوکی می تواند تا ۴ کیلوبایت را ذخیره کند که شامل نام و مقادیر است. کوکی اگر این مقدار را رد کند محتوای قبلی را برای حذف می کند تا ۴ کیلوبایت را حفظ کند.

همچنین هر زمان که مرورگر درخواستی را به یک صفحه از سرور ارسال می کند, همه داده ها در کوکی بصورت خودکار همراه آن درخواست به سمت سرور ارسال می شود.

توجه: اطلاعات حساس مثل رمزهای عبور یا اطلاعات حساب را در کوکی ها ارسال نکنید چرا که امکان دستکاری آن توسط کاربر مخرب را دارد.

 

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

در جاوا اسکریپت, می توانید کوکی ها را با خصوصیت document.cookie ایجاد, حذف و بخوانید.

این خصوصیت تمام کوکی های اختصاص داده شده به یک سند را دربردارد.

برای ساخت یا ذخیره یک کوکی جدید, رشته name=value را به این خصوصیت اختصاص بدید مثل این :

document.cookie = "firstName=NetParadis";

یک کوکی نمی تواند مقادیر شامل کاما یا ; یا فاصله را داشته باشد به این دلیل که جاوا اسکریپت از تابع encodeURIComponent() برای اینکد مقادیر شامل این کاراکترها قبل از ذخیره شده در کوکی, استفاده می کند.

همچنین نیاز دارید که از تابع decodeURIComponent() در زمانی که قصد خواندن مقدار کوکی را دارید استفاده کنید

بصورت پیش فرض یک مدت زمان اعتبار کوکی, سشن فعلی مرورگر است به این معنی که کاربر اگر مرورگر را ببندد کوکی از بین می رود.

برای مشخص کردن یک زمان اتمام برای کوکی می توانید خصوصیت max-age را به ثانیه مشخص کنید.

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

مثل زیر مدت زمان آن را ۳۰ روز انتخاب کرده است :

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

اینجا یک تابع برای ست کردن کوکی با خصوصیت اختیاری max-age تعریف کردیم. می توانید از همین تابع برای حذف یک کوکی با پاس دادن مقدار ۰ به پارامتر daysToLive استفاده کنید.

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

به هر حال, می توانید path را برای اینکه در کدام صفحات قابل دسترس باشد, مشخص کنید.

برای مثال, اگر مقدار path کوکی را برابر / قرار بدید, در تمام صفحات قابل دسترس خواهد بود.

همچنین می توانید خصوصیت domain را اگر قصد دسترسی به کوکی در ساب دامین را دارید مشخص کنید. بصورت مشخص, کوکی ها فقط در صفحاتی از دامنه که ست شدند قابل دسترس هستند.

اگر کوکی در صفحه blog.example.com مقدار خصوصیت path را برابر / و خصوصیت domain را example.com قرار دهد, آن کوکی در صفحات backend.example.com, portal.example.com نیز قابل دسترس خواهد بود.

به هر حال نمی توانید کوکی ها را خارج از دامنه اصلی به اشتراک بگذارید.

همچنین یک خصوصیت بولین به نام secure وجود دارد که اگر مشخص شود, کوکی فقط بر روی ارتباط امن (رمزگذاری شده) مثل HTTPS قابل دسترس خواهد بود.

 

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

خواندن یک کوکی کمی پیچیده است چرا که خصوصیت document.cookie مقدار رشته شامل ; و لیستی از همه کوکی ها بصورت جداشده با فاصله (جفت name=value برای مثال firstName=Hasan; lastName=Shafie;) را برگشت می دهد

این رشته شامل مقادیر خصوصیاتی مثل expires, path, domain و .. نیست.

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

حالا قصد داریم یک تابع دیگر checkCookie() به منظور بررسی اینکه کوکی firstName ست شده است یا نه, ایجاد کنیم. و اگر ست شده باشد, پس این تابع یک پیام خوش آمد گویی را نمایش می دهد.

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

 

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

تنها راه برای بروزرسانی یا ویرایش یک کوکی, ساختن یک کوکی با همان name و path که وجود دارد است.

 

حذف کوکی

برای حذف یک کوکی , کافیست همان name را با مقدار خالی و ست کردن خصوصیت max-age به ۰ مشخص کنید.

به خاطر داشته باشد که اگر قبلا path و domain را برای کوکی مشخص کرده باشید, نیاز است که آن ها را نیز هنگام حذف لحاظ کنید.

به هرحال, برای حذف یک کوکی می توانید از خصوصیت expires نیز بهره ببرید. کافیست که تاریخ آن را برای یک زمان سپری شده مثلا سال ۱۹۹۹ با فرمت صحیحی که قبلا گفته شدست کنید تا کوکی حذف شود.

 

امیدواریم در این بخش آموزش جاوا اسکریپت, از آموزش کوکی ها در جاوا اسکریپت نهایت استفاده را برده باشد.

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران

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

دوره های آموزشی