تخزين الويب

التخزين على الويب ، المعروف سابقًا باسم تخزين نموذج كائن المستند ( DOM )، هو واجهة برمجة تطبيقات (API) قياسية للغة جافا سكريبت توفرها متصفحات الويب . يُمكّن هذا التخزين مواقع الويب من تخزين بيانات دائمة على أجهزة المستخدمين، على غرار ملفات تعريف الارتباط ، ولكن بسعة أكبر بكثير [ 1 ] ودون إرسال أي معلومات في رؤوس HTTP [ 2 ] . يوجد نوعان رئيسيان من التخزين على الويب: التخزين المحلي وتخزين الجلسة، ويتصرفان بشكل مشابه لملفات تعريف الارتباط الدائمة وملفات تعريف ارتباط الجلسة على التوالي. يتم توحيد معايير التخزين على الويب من قِبل اتحاد شبكة الويب العالمية (W3C) [ 3 ] ومجموعة عمل الويب العالمية ( WHATWG ) [ 4 ] ، وهو مدعوم من جميع المتصفحات الرئيسية.

سمات

يختلف التخزين عبر الويب عن ملفات تعريف الارتباط في بعض الجوانب الرئيسية.

غاية

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

حجم التخزين

يقتصر حجم ملفات تعريف الارتباط على 4 كيلوبايت. بينما توفر خدمة التخزين على الويب سعة تخزين أكبر بكثير.

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

توفر خدمة تخزين الويب منطقتين مختلفتين للتخزين: التخزين المحلي وتخزين الجلسة، وتختلفان في النطاق ومدة الصلاحية. تُخزَّن البيانات في التخزين المحلي لكل مصدر، وهو مزيج من البروتوكول واسم المضيف ورقم المنفذ كما هو مُحدد في سياسة المصدر نفسه . وتكون البيانات متاحة لجميع البرامج النصية المُحمَّلة من صفحات من نفس المصدر الذي خزَّن البيانات سابقًا، وتستمر حتى بعد إغلاق المتصفح. ولذلك، لا يُعاني تخزين الويب من مشكلات ضعف التكامل وضعف السرية في ملفات تعريف الارتباط، الموضحة في القسمين 8.5 و8.6 من RFC 6265. أما تخزين الجلسة، فهو لكل مصدر ولكل مثيل (لكل نافذة أو لكل علامة تبويب)، ويقتصر على مدة صلاحية المثيل. ويهدف تخزين الجلسة إلى السماح بتشغيل مثيلات منفصلة من نفس تطبيق الويب في نوافذ مختلفة دون تداخل بينها، وهي حالة استخدام لا تدعمها ملفات تعريف الارتباط بشكل جيد. [ 10 ] 

واجهة ونموذج بيانات

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

الاستخدام

تحتوي المتصفحات التي تدعم التخزين السحابي على كائنات عامة sessionStorageمُعرّفة على مستوى النافذة. يمكن استخدام كود جافا سكريبتlocalStorage التالي في هذه المتصفحات لتفعيل سلوك التخزين السحابي:

// تخزين القيمة في المتصفح طوال مدة الجلسة sessionStorage.setItem ( " key" , "value" );// استرجاع القيمة (يتم حذفها عند إغلاق المتصفح وإعادة فتحه) ... تنبيه ( sessionStorage . getItem ( "key" ));// تخزين القيمة في المتصفح بعد انتهاء مدة الجلسة localStorage.setItem ( " key" , "value" );// استرجاع القيمة (تبقى حتى بعد إغلاق المتصفح وإعادة فتحه) alert ( localStorage . getItem ( "key" ));

لا يمكن تخزين سوى النصوص عبر واجهة برمجة تطبيقات التخزين. [ 11 ] محاولة تخزين نوع بيانات مختلف ستؤدي إلى تحويله تلقائيًا إلى نص في معظم المتصفحات. مع ذلك، يسمح التحويل إلى JSON بتخزين كائنات جافا سكريبت بكفاءة.

// تخزين كائن بدلاً من سلسلة نصية localStorage.setItem ( " key" , { name : "value" }); alert ( typeof localStorage.getItem ( ' key ' )); // سلسلة نصية// تخزين عدد صحيح بدلاً من سلسلة نصية localStorage.setItem ( " key " , 1 ); alert ( typeof localStorage.getItem ( "key" ) ); // سلسلة نصية// تخزين كائن باستخدام JSON localStorage.setItem ( " key" , JSON.stringify ( { name : " value" } )); alert(JSON.parse( localStorage.getItem ( " key " ) ) . name ); // القيمة

التسمية

يحمل مشروع W3C عنوان "تخزين الويب". وكان مصطلح "تخزين DOM" شائع الاستخدام أيضاً، وإن كان استخدامه يتراجع؛ فعلى سبيل المثال، استُبدلت مقالات "تخزين DOM" على مواقع مطوري موزيلا ومايكروسوفت بمقالات "تخزين الويب". [ 12 ] [ 13 ] [ 14 ] [ 15 ]

لا يشير مصطلح "DOM" في تخزين DOM حرفيًا إلى نموذج كائن المستند . وفقًا لاتحاد شبكة الويب العالمية (W3C)، "يُستخدم مصطلح DOM للإشارة إلى مجموعة واجهات برمجة التطبيقات (API) المتاحة للبرامج النصية في تطبيقات الويب، ولا يعني بالضرورة وجود كائن مستند فعلي..." [ 16 ]

إدارة تخزين الويب

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

انظر أيضاً

مراجع

  1. 1 2 ديكسيت، شويتانك (2013-03-05). "تخزين الويب: تخزين بيانات أسهل وأكثر فعالية من جانب العميل" . Dev.Opera . تم الاسترجاع في 2021-05-14 .
  2. هيوم، آندي (24 مارس 2011). "التخزين المحلي ليس ملفات تعريف الارتباط" . andyhume.net . مؤرشف من الأصل في 2 يونيو 2011. تم الاطلاع عليه في 14 مايو 2021 .
  3. هيكسون، إيان، محرر. (28 يناير 2021). "تخزين الويب (الطبعة الثانية)" . اتحاد شبكة الويب العالمية . مجموعة عمل منصة الويب . تم الاسترجاع في 14 مايو 2021 .
  4. WHATWG. "معيار HTML § 12 تخزين الويب" . html.spec.whatwg.org . تم الاطلاع عليه بتاريخ 14-05-2021 .
  5. كيتامورا، إيجي (28 يناير 2014). "العمل مع الحصص على متصفحات الجوال: تقرير بحثي حول تخزين المتصفح - HTML5 Rocks" . مؤرشف من الأصل في 1 فبراير 2014. تم الاطلاع عليه في 4 مايو 2021 .
  6. "حصص التخزين ومعايير الإخلاء - واجهات برمجة تطبيقات الويب | MDN" . developer.mozilla.org . 13 مارس 2025. تاريخ الاسترجاع: 28 أبريل 2025. يقتصر تخزين الويب، الذي يمكن الوصول إليه باستخدام خاصيتي localStorage وsessionStorage لكائن النافذة، على 10 ميجابايت كحد أقصى من البيانات على جميع المتصفحات. يمكن للمتصفحات تخزين ما يصل إلى 5 ميجابايت من التخزين المحلي، و5 ميجابايت من تخزين الجلسة لكل مصدر.
  7. جون ريسيج: تخزين DOM . جون ريسيج، ejohn.org . تم الاطلاع عليه بتاريخ 12-06-2011.
  8. مايكلن (2013-03-08). "المشكلة رقم 21680002: رفع حد window.localstorage من 5 ميجابايت إلى 10 ميجابايت. - مراجعة الكود" . مراجعات كود كروميوم . تم الاطلاع عليه بتاريخ 14-05-2021 .
  9. مايكروسوفت (2016-10-20). "مقدمة إلى تخزين الويب" . مستندات مايكروسوفت . مايكروسوفت . تم الاسترجاع في 2021-05-14 .
  10. W3C: مسودة معيار تخزين الويب. مؤرشفة بتاريخ 1 فبراير 2011 في Wayback Machine . Dev.w3.org (5 فبراير 2004). تم الاطلاع عليها بتاريخ 12 يونيو 2011.
  11. اتحاد شبكة الويب العالمية (W3C)، 2011 http://dev.w3.org/html5/webstorage/ مؤرشف بتاريخ 1 فبراير 2011 في أرشيف الإنترنت (Wayback Machine)
  12. "تخزين DOM" . شبكة مطوري موزيلا . مؤرشف من الأصل في 4 يونيو 2011. تم الاسترجاع في 12 يونيو 2011 .
  13. "واجهة برمجة تطبيقات تخزين الويب" . شبكة مطوري موزيلا . تم الاطلاع عليه في 28 يونيو 2017 .
  14. "مقدمة إلى تخزين DOM" . شبكة مطوري مايكروسوفت . مؤرشف من الأصل في 8 يونيو 2011. تم الاسترجاع في 12 يونيو 2011 .
  15. "مقدمة إلى تخزين الويب" . شبكة مطوري مايكروسوفت . تم الاطلاع عليه في 28 يونيو 2017 .
  16. W3C: مسودة معيار تخزين الويب. مؤرشفة بتاريخ 1 فبراير 2011 في Wayback Machine . Dev.w3.org (5 فبراير 2004). تم الاطلاع عليها بتاريخ 12 يونيو 2011.
  17. Webappsstore.sqlite kb.mozillazine.org
  18. أين تُخزَّن بيانات الويب في متصفح سفاري؟ discussions.apple.com. تاريخ الاسترجاع: 20 أكتوبر 2022