کوکی ها در مقابل LocalStorage در مقابل SessionStorage

ذخیره سازی جلسه:
ذخیرهسازی جلسه یک مکانیسم ذخیرهسازی وب است که توسط مرورگرهای مدرن برای ذخیره موقت دادهها در سمت مشتری ارائه میشود. دادههای ذخیرهشده در ذخیرهسازی جلسه تا زمانی که برگه یا پنجره مرورگر باز است در دسترس باقی میماند و با بسته شدن برگه یا پنجره پاک میشود.
برای استفاده از ذخیرهسازی جلسه در جاوا اسکریپت، میتوانید از sessionStorage
شی، که روش هایی را برای تنظیم، بازیابی و حذف داده ها ارائه می دهد. در اینجا مثالی آورده شده است که نحوه استفاده از ذخیره سازی جلسه را نشان می دهد:
// Storing data in session storage
sessionStorage.setItem("name", "John");
sessionStorage.setItem("age", "30");
// Retrieving data from session storage
const name = sessionStorage.getItem("name");
const age = sessionStorage.getItem("age");
console.log(name); // Output: John
console.log(age); // Output: 30
// Removing data from session storage
sessionStorage.removeItem("age");
// Clearing all data from session storage
sessionStorage.clear();
در کد بالا از setItem()
روشی برای ذخیره داده ها در ذخیره سازی جلسه آرگومان اول کلید و آرگومان دوم مقدار است. برای بازیابی داده ها از getItem()
روش، ارسال کلید به عنوان آرگومان. برای حذف یک مورد خاص، از removeItem()
روش، و برای پاک کردن تمام داده ها، از آن استفاده می کنیم clear()
روش.
محل ذخیره سازی:
ذخیره سازی محلی یکی دیگر از مکانیسم های ذخیره سازی وب است که توسط مرورگرهای مدرن برای ذخیره داده ها در سمت مشتری ارائه می شود. برخلاف ذخیرهسازی جلسه، دادههای ذخیرهشده در فضای ذخیرهسازی محلی حتی پس از بسته شدن و بازگشایی مرورگر باقی میمانند. تا زمانی که کاربر به صراحت پاک نشود یا از طریق کد جاوا اسکریپت در دسترس است.
برای استفاده از حافظه محلی در جاوا اسکریپت، می توانید از localStorage
شی، که روش هایی مشابه ذخیره سازی جلسه را ارائه می دهد. در اینجا مثالی آورده شده است که نحوه استفاده از حافظه محلی را نشان می دهد:
// Storing data in local storage
localStorage.setItem("name", "John");
localStorage.setItem("age", "30");
// Retrieving data from local storage
const name = localStorage.getItem("name");
const age = localStorage.getItem("age");
console.log(name); // Output: John
console.log(age); // Output: 30
// Removing data from local storage
localStorage.removeItem("age");
// Clearing all data from local storage
localStorage.clear();
کد ذخیره سازی محلی مشابه ذخیره سازی جلسه است. ما استفاده می کنیم setItem()
روش ذخیره سازی داده ها، getItem()
روش بازیابی داده ها، removeItem()
روش حذف یک مورد خاص، و clear()
روشی برای پاک کردن تمام داده ها
بیسکویت ها:
کوکی ها قطعات کوچکی از داده ها هستند که توسط یک وب سایت در سمت مشتری ذخیره می شوند. آنها می توانند برای تداوم داده ها بین درخواست ها یا جلسات مختلف استفاده شوند. کوکیها تاریخ انقضا دارند و میتوان آنها را به صورت دائمی یا فقط برای جلسه تنظیم کرد.
برای کار با کوکی ها در جاوا اسکریپت، می توانید از document.cookie
ویژگی، که نمایش رشته ای از تمام کوکی های مرتبط با سند جاری را ارائه می دهد. در اینجا مثالی آورده شده است که نحوه کار با کوکی ها را نشان می دهد:
// Setting a cookie
document.cookie = "name=John; expires=Thu, 1 Jan 2023 00:00:00 UTC; path=/";
// Retrieving a cookie
const cookies = document.cookie.split("; ");
cookies.forEach(cookie => {
const [key, value] = cookie.split("=");
console.log(key, value);
});
// Removing a cookie
document.cookie = "name=; expires=Thu, 1 Jan 1970 00:00:00 UTC; path=/";
در کد بالا، برای تنظیم یک کوکی، یک رشته به آن اختصاص می دهیم document.cookie
ویژگی. رشته از فرمت “key=value” پیروی می کند. ما همچنین می توانیم ویژگی های اضافی مانند تاریخ انقضا، مسیر و دامنه را تنظیم کنیم.
برای بازیابی کوکی ها، آنها را تقسیم می کنیم document.cookie
رشته با “;” برای دریافت آرایه ای از کوکی های مجزا. سپس میتوانیم هر کوکی را به «=” تقسیم کنیم تا جفتهای کلید-مقدار را به دست آوریم.
برای حذف یک کوکی، میتوانیم تاریخ انقضای آن را روی تاریخ گذشته تنظیم کنیم و عملاً آن را باطل کنیم.
هنگام انتخاب بین ذخیرهسازی جلسه، فضای ذخیرهسازی محلی و کوکیها، عوامل زیر را در نظر بگیرید:
- ذخیرهسازی جلسه برای دادههایی مناسب است که باید فقط در طول جلسه کاربر در دسترس باشند.
- ذخیرهسازی محلی برای دادههایی که باید در طول جلسات باقی بمانند، مناسب است.
- کوکی ها برای حجم کم داده مناسب هستند و گزینه های اضافی مانند تاریخ انقضا و محدودیت های دامنه دارند.
مکانیسم ذخیره سازی مناسب را بر اساس نیازهای خاص خود و نیازهای ماندگاری داده انتخاب کنید.
تفاوت اصلی بین ذخیرهسازی جلسه، ذخیرهسازی محلی و کوکیها به شرح زیر است:
-
ماندگاری داده:
- ذخیرهسازی جلسه: دادههای ذخیرهشده در ذخیرهسازی جلسه تا زمانی که برگه یا پنجره مرورگر باز باشد در دسترس است. وقتی برگه یا پنجره بسته می شود پاک می شود.
- ذخیرهسازی محلی: دادههای ذخیرهشده در حافظه محلی حتی پس از بسته شدن مرورگر و بازگشایی مجدد باقی میمانند. تا زمانی که کاربر به صراحت پاک نشود یا از طریق کد جاوا اسکریپت در دسترس است.
- کوکیها: کوکیها را میتوان با تاریخ انقضا تنظیم کرد، که باعث میشود آنها دائمی یا فقط جلسهای باشند. کوکیهای دائمی تا تاریخ انقضا در دستگاه کاربر باقی میمانند، در حالی که کوکیهای جلسه پس از پایان جلسه مرورگر پاک میشوند.
-
محدودیت ذخیره سازی:
- فضای ذخیرهسازی جلسه: معمولاً ذخیرهسازی جلسه در مقایسه با کوکیها محدودیت فضای ذخیرهسازی بیشتری را فراهم میکند. می تواند داده های بیشتری را در هر دامنه ذخیره کند.
- فضای ذخیرهسازی محلی: فضای ذخیرهسازی محلی نیز در مقایسه با کوکیها محدودیت فضای ذخیرهسازی بیشتری را ارائه میکند. می تواند داده های بیشتری را در هر دامنه ذخیره کند.
- کوکیها: کوکیها در مقایسه با ذخیرهسازی جلسه و فضای ذخیرهسازی محلی، محدودیت ذخیرهسازی کمتری دارند. هر کوکی می تواند مقدار محدودی داده (معمولاً چند کیلوبایت) در هر دامنه را ذخیره کند.
-
کنترل خودکار:
- ذخیرهسازی جلسه: ذخیرهسازی جلسه نیازی به مدیریت دستی انقضای دادهها ندارد. هنگامی که برگه یا پنجره مرورگر بسته می شود، داده ها به طور خودکار پاک می شوند.
- ذخیرهسازی محلی: ذخیرهسازی محلی مکانیسم انقضای خودکار ندارد. داده ها تا زمانی که به صراحت توسط کاربر یا از طریق کد جاوا اسکریپت پاک شوند، باقی می مانند.
- کوکی ها: کوکی ها می توانند تاریخ انقضا داشته باشند. پس از رسیدن به تاریخ انقضا، مرورگر به طور خودکار کوکی را حذف می کند.
-
دسترسی به داده ها:
- ذخیرهسازی جلسه و ذخیرهسازی محلی: دادههای ذخیرهشده در ذخیرهسازی جلسه و ذخیرهسازی محلی را میتوان مستقیماً با استفاده از APIهای جاوا اسکریپت دسترسی داشت و دسترسی و دستکاری آسان را فراهم میکند.
- کوکی ها: با استفاده از API های جاوا اسکریپت می توان به کوکی ها دسترسی پیدا کرد و آنها را اصلاح کرد، اما دسترسی در مقایسه با ذخیره سازی جلسه و ذخیره سازی محلی محدودتر است.
-
ترافیک شبکه:
- ذخیرهسازی جلسه و ذخیرهسازی محلی: دادههای ذخیرهشده در ذخیرهسازی جلسه و ذخیرهسازی محلی با هر درخواست HTTP به سرور ارسال نمیشود. در سمت مشتری باقی می ماند و ترافیک غیر ضروری شبکه را کاهش می دهد.
- کوکی ها: کوکی ها به صورت خودکار با هر درخواست HTTP برای دامنه مربوطه به سرور ارسال می شوند و ترافیک شبکه را افزایش می دهند.
نتیجه
ذخیرهسازی جلسه برای ذخیره دادههای موقت در طول جلسه کاربر مناسب است، ذخیرهسازی محلی برای دادههای دائمی که باید در هر جلسه در دسترس باشد ایدهآل است، و کوکیها برای مقادیر کم داده مفید هستند و گزینههایی برای انقضا و محدودیتهای دامنه دارند. مکانیسم ذخیره سازی را بر اساس نیازهای داده خاص خود و رفتار پایداری مورد نظر انتخاب کنید.