دسترسی سریع
چرا باید دادهها را در مرورگر ذخیره کنیم؟
1. افزایش سرعت بارگذاری صفحات
با ذخیره دادههای پرکاربرد (مانند تنظیمات، تصاویر کوچک، یا دادههای فرم) در مرورگر، نیازی نیست هر بار این اطلاعات از سرور بارگذاری شوند.
2. ذخیره وضعیت کاربر
برای مثال، اطلاعات لاگین کاربر یا تنظیمات مانند زبان و تم انتخابی ذخیره میشوند تا کاربر مجبور نباشد هر بار تنظیمات را دوباره اعمال کند.
3. تحلیل و بررسی دادهها
از Web Storage برای ذخیره دادههای آماری مانند رفتار کاربر استفاده میکنیم تا تجربه کاربری بهبود یابد.
4. برنامههای وب آفلاین
برخی اپلیکیشنهای وب، مانند گوگل از Web Storage برای ذخیره موقت دادهها استفاده میکنند تا حتی در صورت قطع ارتباط اینترنتی، کاربر بتواند به دادهها دسترسی داشته باشد.
انواع روش های ذخیرهسازی داده روی مرورگر کاربر
- Local Storage
- Session Storage
- Cookies
ذخیرهسازی در Local Storage
Local Storage یکی از روشهای ذخیرهسازی دادهها در مرورگر است که به توسعهدهندگان امکان ذخیره دادهها به صورت دائمی و در سمت کاربر را میدهد.
ویژگیهای Local Storage
- اطلاعات ذخیرهشده در Local Storage حتی پس از بسته شدن مرورگر یا خاموش شدن دستگاه همچنان باقی میمانند
- دادههای ذخیرهشده در Local Storage فقط در مرورگر ذخیره میشوند و هنگام باز کردن سایت به سرور ارسال نمیشوند
- ظرفیت ذخیره دادهها تا ۵ مگابایت (بسته به مرورگر) است
موارد استفاده
- ذخیره تنظیمات کاربر مانند حالت تاریک، روشن یا زبان
- ذخیره اطلاعات فرمها به طور موقت برای جلوگیری از از دست رفتن دادهها
- ذخیره دادههای غیر حساس که نیاز به دسترسی سریع دارند
نحوه استفاده
ذخیرهسازی داده
sessionStorage.setItem("دادهی موردنظر","کلید یا نام داده ها")
const user = {name:"Matin",phone:"09128455626"}
sessionStorage.setItem("user",JSON.stringify(user))
بازیابی داده
sessionStorage.getItem("کلید یا نام داده ها");
const stringUser = sessionStorage.getItem("user");
const objectUser = JSON.stringify(stringUser);
حذف داده
sessionStorage.removeItem("user")
پاکسازی تمام داده ها
sessionStorage.clear()
ذخیرهسازی در Session Storage
Session Storage شباهت زیادی به Local Storage دارد، اما تفاوتهایی دارد که آن را برای ذخیره دادههای موقت ایدهآل میکند.
ویژگیهای Session Storage
- دادههای ذخیرهشده در Session Storage فقط تا زمانی که تب یا پنجره مرورگر باز است، باقی میمانند
- دادههای ذخیرهشده در Session Storage فقط در مرورگر نگهداری میشوند و به سرور ارسال نمیشوند
- مشابه Local Storage، معمولاً ظرفیت آن تا ۵ مگابایت است
موارد استفاده
- ذخیرهسازی اطلاعات موقت در یک تب مرورگر مانند اطلاعات فیلترهای جستجو
- حفظ دادههایی که نیاز به دسترسی سریع دارند اما نباید بین تبهای مختلف مرورگر به اشتراک گذاشته شوند
- ذخیره دادههای غیر حساس و موقتی که پس از بستهشدن تب نیازی به نگهداری آنها نیست
نحوه استفاده
ذخیرهسازی داده
sessionStorage.setItem("دادهی موردنظر","کلید یا نام داده ها")
const user = {name:"Matin",phone:"09128455626"}
sessionStorage.setItem("user",JSON.stringify(user))
بازیابی داده
sessionStorage.getItem("کلید یا نام داده ها");
const stringUser = sessionStorage.getItem("user");
const objectUser = JSON.stringify(stringUser);
حذف داده
sessionStorage.removeItem("user")
پاکسازی تمام داده ها
sessionStorage.clear()
ذخیرهسازی در Cookie
کوکیها فایلهای کوچک متنی هستند که توسط وبسایتها در مرورگر ذخیره میشوند و اطلاعاتی مثل تنظیمات کاربر، نشستها، یا رفتار مرورگر را حفظ میکنند. دادههای ذخیرهشده در کوکیها میتوانند به سرور ارسال شوند.
ویژگیهای Cookie
- برای ذخیره اطلاعات ورود کاربر یا وضعیت احراز هویت استفاده میشوند
- امکان ذخیرهسازی دادههای حساس(باید اقدامات امنیتی رعایت شود)
- برخلاف Local و Session Storage، کوکیها میتوانند همراه با هر درخواست HTTP به سرور ارسال شوند
- ظرفیت تا چهار کیلوبایت
موارد استفاده
- برای شخصیسازی تجربه کاربر یا تبلیغات هدفمند استفاده میشود
- احراز هویت: نگهداری اطلاعات نشست کاربری برای تشخیص هویت در درخواستهای بعدی
- ذخیره تنظیمات مانند حالت تم سایت یا انتخابهای کاربر
نحوه استفاده
ذخیرهسازی داده
const user = {name:"Matin",phone:"09128455626"}
document.cookie = "user="+JSON.stringify(user)+"; expires=Fri, 31 Dec 2025 23:59:59 GMT; path=/";
بازیابی داده
// بازیابی تمام کوکیها
const allCookies = document.cookie
// پیدا کردن کوکی با استفاده از نام آن
function getCookieValue(cookieName) {
const cookies = document.cookie.split('; ');
for (let cookie of cookies) {
const [name, value] = cookie.split('=');
if (name === cookieName) {
return decodeURIComponent(value);
}
}
return null; // مقدار کوکی 'user' یا null اگر پیدا نشود
}
const userCookie = getCookieValue('user');
رعایت امنیت در کوکی ها
پیش تر گفتیم که امکان ذخیرهسازی دادههای حساس در کوکیها وجود دارد اما باید پروتکل های امنیتی زیر انجام شود:
- HttpOnly
- Secure
- SameSite
*نکته : رعایت پروتکل های امنیتی از طرف کلاینت امکان پذیر نیست و باید از سمت سرور انجام شود.
رعایت پروتکل های امنیتی کوکی در سرور
در این بخش، از فریمورکهای Django و Node.js به منظور آموزش نحوه تنظیم کوکیهای امن استفاده کردهایم.
ست کردن کوکی در Django
from django.http import HttpResponsedef set_cookie_view(request):response = HttpResponse("Cookie is set successfully!")response.set_cookie(key='user',value='{"name":"Matin","phone":"09128455626"}', # مقدار کوکیmax_age=3600, # مدت زمان انقضا به ثانیه (1 ساعت)httponly=True, # فقط از سرور قابل دسترسی باشدsecure=True, # فقط در HTTPS ارسال شودsamesite='Strict' # ارسال فقط در درخواستهای اصلی سایت)return response
ست کردن کوکی در Node.js
const express = require('express');const app = express();app.get('/set-cookie', (req, res) => {res.cookie('user', JSON.stringify({ name: 'Matin',phone:"09128455626" }), {httpOnly: true, // فقط از طریق سرور قابل دسترسیsecure: true, // فقط روی HTTPS ارسال شودsameSite: 'Strict', // فقط در دامنه اصلی ارسال شود});res.send('HttpOnly cookie set!');});app.listen(3000, () => {console.log('Server is running on http://localhost:3000');});
جمع بندی Web Storage
ویژگیها | Local Storage | Session Storage | Cookie |
---|---|---|---|
مدت ماندگاری | دائمی مگر حذف شود | موقت تا بستهشدن تب | قابل تنظیم، وابسته انقضا |
ظرفیت | تا 5 مگابایت | تا 5 مگابایت | تا 4 کیلوبایت |
موارد استفاده | دادههای طولانی مدت | دادههای موقت | احرازهویت |
ارسال به سرور | خیر | خیر | بله |
امنیت | ضعیف | ضعیف | قابل تنظیم |
دسترسی جاوااسکریپت | بله | بله | قابل تنظیم |
این جدول به شما کمک میکند تفاوتها و کاربردهای هر نوع ذخیرهسازی را سریعتر درک کنید، اگر سوالی دارید یا جایی از این آموزش نامفهوم بود برای ما تیکت ارسال کنید تا پاسخ شمارا بدهیم.