الجلسة والتخزين المحلي هما طريقتان لتخزين المستعرض تتيح لك تخزين البيانات جنبًا إلى جنب مع طلبات HTTP عديمة الحالة. إنها بديل للتخزين المستند إلى ملفات تعريف الارتباط ولها استخدامات عديدة في تطوير الويب.

بينما تعمل بطريقة متشابهة جدًا ، هناك اختلافات كبيرة يجب أن تكون على دراية بها.

التخزين المحلي وتخزين الجلسات: ما هي استخداماتهما؟

التخزين المحلي وتخزين الجلسة هي واجهات برمجة تطبيقات JavaScript التي يمكنك استخدامها لتخزين البيانات على جانب العميل. إنها تسمح لموقع ويب بتخزين البيانات على المتصفح وإرشاد المتصفح للوصول إليها لاحقًا.

بناءً على احتياجاتك ، يمكنك استخدام التخزين المحلي أو تخزين الجلسة لتخزين البيانات. تتشابه طريقتا التخزين مع ملفات تعريف الارتباط ولكن بدونهما نفس الخصوصية تتعلق بملفات تعريف الارتباط. لذلك ، تفضل معظم مواقع الويب الحديثة استخدام طرق تخزين الويب فقط أو دمجها مع ملفات تعريف الارتباط كإجراء احتياطي.

على عكس ملفات تعريف الارتباط ، لا يرسل التخزين المحلي وتخزين الجلسة البيانات إلى الخادم عبر رؤوس HTTP. يجب عليك استخدامها للوظائف من جانب العميل فقط.

بالإضافة إلى ذلك ، يبلغ حد التخزين المحلي وتخزين الجلسة لكل نطاق حوالي 5 ميغابايت لكل مجال. إنها توفر مساحة تخزين أكبر من ملفات تعريف الارتباط ، والتي لا تتعدى سعتها 4 كيلوبايت لكل ملف تعريف ارتباط.

instagram viewer

ما هو تخزين الجلسة؟

تقترب جلسة التصفح من استخدامك لموقع الويب. إذا قمت بزيارة أحد المواقع ، وتصفحه قليلاً ، ثم قم بإيقاف تشغيل جهاز الكمبيوتر الخاص بك ، فيمكنك التفكير في ذلك الوقت كجلسة واحدة. قد يغير تكوين متصفحك هذا بطرق خفية ، ولكن تهدف الجلسة إلى تمثيل جزء الوقت الذي تتفاعل فيه مع أحد المواقع.

تخزين الجلسة فريد لكل علامة تبويب في المتصفح. إذا فتحت علامة تبويب جديدة وانتقلت إلى نفس الموقع ، فستبدأ جلسة جديدة بسعة التخزين الخاصة بها. ومع ذلك ، إذا كنت تستخدم ميزة "علامة التبويب المكررة" في متصفحك ، فقد يعيد ذلك استخدام الجلسة نفسها. لا يمكنك الاعتماد كثيرًا على التفاصيل المحددة "للجلسة". بدلاً من ذلك ، ركز على المفهوم الأساسي: تخزين الجلسة مؤقت.

يحتوي تخزين الجلسة على طرق API مضمنة للعمل مع بيانات زوج المفتاح / القيمة. يمكنك تخزين البيانات من جافا سكريبت مثل ذلك:

sessionStorage.setItem ("مفتاح"، "قيمة")؛

ولاسترجاع القيمة المخزنة:

sessionStorage.getItem ("مفتاح") ؛

لاحظ أن كليهما مفتاح و القيمة هي أنواع السلاسل فقط. إذا كنت تريد تخزين نوع مختلف ، فستحتاج إلى تحويله إلى سلسلة ، بشكل صريح أو ضمني.

ما هو التخزين المحلي؟

يحتفظ التخزين المحلي بالبيانات عبر جميع مثيلات الموقع ، سواء كانت في علامات تبويب أو نوافذ مختلفة. كما أنه دائم ، لذا لن تختفي البيانات عند إغلاق المتصفح.

عندما تفتح موقعًا إلكترونيًا كان يستخدم التخزين المحلي سابقًا ، فسيكون بإمكانه دائمًا الوصول إلى تلك البيانات المخزنة.

بصفتك مطور ويب ، يمكنك استخدام هذه الآلية للاحتفاظ ببيانات حول المستخدم. قد تستخدم بعض مواقع الويب هذا للاحتفاظ بتسجيل الدخول أو تقديم تجربة أكثر تخصيصًا.

مثل تخزين الجلسة ، يمكنك تعيين كائن تخزين محلي بسطر واحد من كود JavaScript:

localStorage.setItem ("مفتاح"، "قيمة")؛

للوصول إلى قيمة المفتاح:

localStorage.getItem ("مفتاح") ؛

لاحظ أن هذه الطرق تعمل بنفس طريقة تخزين الجلسة ، فهي تستخدم نوعًا مختلفًا من مخزن البيانات.

بينما يمسح تخزين الجلسة البيانات بمجرد انتهاء الجلسة ، فإن الطريقة الوحيدة لمسح التخزين المحلي هي حذفها صراحةً. يقدم كلا نوعي التخزين طريقتين لمسح البيانات. الأول يزيل عنصرًا معينًا من البيانات بناءً على مفتاحه:

localStorage.removeItem ("مفتاح") ؛

يمكنك أيضًا إزالة جميع البيانات المخزنة بواسطة موقعك ، بغض النظر عن مفتاحه:

localStorage.clear () ،

يمكنك معرفة المزيد حول طرق واجهة برمجة تطبيقات تخزين الويب هذه على javascript.info موقع الكتروني.

متى تحتاج إلى تخزين محلي؟

نظرًا لأن التخزين المحلي مستمر ، فمن الأفضل الاحتفاظ بالبيانات عبر زيارات المستخدم. إذا كنت تريد تخزين تفضيلات الموقع أو تخزين البيانات طويلة المدى مؤقتًا ، فإن التخزين المحلي مناسب. قد لا ترغب في تخزين بيانات أكثر حساسية باستخدام التخزين المحلي ، لأنه دائم.

نظرًا لأن التخزين المحلي وتخزين الجلسة هما طريقتان أساسيتان ، فقد ترغب في تجنب استخدامها للوظائف المستندة إلى الخادم مثل تسجيل دخول المستخدم. يمكنك اعتبار ملفات تعريف الارتباط كبديل في هذه الحالات.

متى تحتاج إلى تخزين الجلسة؟

إذا كنت ترغب في تخزين البيانات فقط أثناء تفاعل المستخدم مع موقعك ، فإن تخزين الجلسة مثالي. قد يكون هذا للتخزين المؤقت قصير المدى أو بيانات الاستخدام حول زيارة معينة إلى موقعك.

يعد تخزين الجلسة أفضل لتخزين معلومات أكثر حساسية منذ انتهاء صلاحيتها.

التخزين المحلي مقابل. تخزين الجلسة: أيهما أكثر أمانًا؟

كما رأيت ، فإن طرق التخزين المحلية وتخزين الجلسة متشابهة من نواح كثيرة ولكن لا تزال تحتوي على حالات استخدام مخصصة. لا يجب أن تعتبر أيًا منهما آمنًا نظرًا لأنهما تقنيات أمامية يمكن لـ JavaScript الوصول إليها. ومع ذلك ، فإن تخزين الجلسة مريح للغاية ، وطبيعته المؤقتة مطمئنة.

التخزين المحلي دائم لذا فقد يشكل مخاوف أمنية إضافية. يمكن لأي شخص يفتح متصفحًا ، من الناحية النظرية ، الوصول إلى التخزين المحلي. يجب أن تكون على علم ب كيف تعمل هجمات XSS وكيفية منعها.

التخزين المحلي أو تخزين الجلسة: أيهما يجب أن تستخدم؟

تخزين الجلسة أكثر أمانًا قليلاً نظرًا لطبيعته المؤقتة. ومع ذلك ، يعتمد اختيارك لطريقة تخزين الويب على متطلباتك. يعد تخزين JavaScript أكثر ملاءمة للاستخدام من جانب العميل فقط. لكنه يوفر مخزنًا ملائمًا للبيانات قائمًا على المتصفح وسهل الاستخدام للغاية.

تذكر أنه بينما يخزن التخزين المحلي البيانات عبر عدة علامات تبويب ، فإن تخزين الجلسة يكون فريدًا لكل علامة تبويب ، في الغالب. يجب أن تتأكد من أن تطبيقك يقدم أقل عدد ممكن من الافتراضات ويلبي الحالات المتطورة.

ملفات تعريف الارتباط هي شكل قديم من أشكال استمرارية البيانات ، لكنها لا تزال قيد الاستخدام كثيرًا. قد ترغب في التحقق منها بحثًا عن البيانات التي تحتاج إلى إرسالها إلى الخادم.