نظرة عامة على ملفات تعريف الارتباط
إذا تم استخدام إطار عمل غير قابل للتغيير لتخزين بيانات عمود التسوق، وكانت صفحة عرض المنتج تتغير باستمرار، على الرغم من أن هذا يمكن أن يحقق وظيفة محاكاة المتغيرات العالمية، إلا أنه ليس صارمًا. على سبيل المثال، إذا قمت بالنقر بزر الماوس الأيمن فوق صفحة إطار التنقل ثم قمت بالنقر فوق الأمر [تحديث] في القائمة المختصرة، فسيتم فقدان كافة متغيرات JavaScript. لذلك، لتنفيذ متغيرات عامة صارمة عبر الصفحات، فإن هذه الطريقة غير ممكنة. هناك آلية أخرى في JavaScript: يمكن لملفات تعريف الارتباط تلبية متطلبات المتغيرات العامة الحقيقية.
ملف تعريف الارتباط هو آلية يوفرها المتصفح والتي توفر سمة ملف تعريف الارتباط لكائن المستند إلى JavaScript. يمكن التحكم فيه بواسطة JavaScript وهو ليس ملكًا لـ JavaScript نفسها. ملف تعريف الارتباط هو ملف يتم تخزينه على القرص الصلب الخاص بالمستخدم، ويتوافق هذا الملف عادة مع اسم المجال عندما يصل المتصفح إلى اسم المجال مرة أخرى، يصبح ملف تعريف الارتباط متاحًا. لذلك، يمكن أن تمتد ملفات تعريف الارتباط عبر صفحات ويب متعددة تحت اسم نطاق واحد، ولكن لا يمكن استخدامها عبر أسماء نطاقات متعددة.
تقوم المتصفحات المختلفة بتنفيذ ملفات تعريف الارتباط بشكل مختلف، ولكن خصائصها هي نفسها. على سبيل المثال، في نظامي التشغيل Windows 2000 وWindows xp، يتم تخزين ملفات تعريف الارتباط في المجلد document and settingsuserNamecookie. تنسيق التسمية المعتاد هو: [email protected] .
تقوم آلية ملفات تعريف الارتباط بتخزين المعلومات على القرص الصلب الخاص بالمستخدم، بحيث يمكن استخدامها كمتغير عام، وهذه إحدى أكبر مزاياها. ويمكن استخدامه في الحالات التالية.
1. حفظ حالة تسجيل دخول المستخدم. على سبيل المثال، يتم تخزين معرف المستخدم في ملف تعريف الارتباط بحيث لا يحتاج المستخدم إلى تسجيل الدخول مرة أخرى عندما يزور الصفحة في المرة القادمة. توفر العديد من المنتديات والمجتمعات الآن هذه الوظيفة. يمكن لملفات تعريف الارتباط أيضًا تعيين وقت لانتهاء الصلاحية. عند انتهاء المهلة الزمنية، سيختفي ملف تعريف الارتباط تلقائيًا. لذلك، يمكن للنظام في كثير من الأحيان مطالبة المستخدمين بالبقاء مسجلين للدخول: الخيارات الشائعة هي شهر واحد، ثلاثة أشهر، سنة واحدة، وما إلى ذلك.
2. تتبع سلوك المستخدم. على سبيل المثال، يمكن لموقع ويب للتنبؤات الجوية أن يعرض أحوال الطقس المحلية بناءً على المنطقة التي حددها المستخدم. إذا كنت بحاجة إلى تحديد الموقع في كل مرة، فسيكون ذلك مرهقًا. عند استخدام ملفات تعريف الارتباط، سيصبح الأمر أكثر سهولة في الاستخدام. يمكن للنظام أن يتذكر المنطقة التي تمت زيارتها في المرة الأخيرة، وسيتم عرضها تلقائيًا المستخدم الأخير الظروف الجوية في منطقتك. نظرًا لأن كل شيء يتم في الخلفية، تبدو هذه الصفحة وكأنها مخصصة لمستخدم معين وتكون مريحة جدًا للاستخدام.
3. تخصيص الصفحة. إذا كان موقع الويب يوفر وظيفة تغيير المظهر أو التخطيط، فيمكن استخدام ملفات تعريف الارتباط لتسجيل خيارات المستخدم، مثل لون الخلفية والدقة وما إلى ذلك. عندما يقوم المستخدم بالزيارة في المرة القادمة، لا يزال من الممكن حفظ نمط الواجهة للزيارة الأخيرة.
4. إنشاء عربة التسوق. تمامًا كما في المثال السابق، تُستخدم ملفات تعريف الارتباط لتسجيل العناصر التي يحتاج المستخدم إلى شرائها، ويمكن إرسالها بشكل موحد أثناء الدفع. على سبيل المثال، يستخدم موقع Taobao ملفات تعريف الارتباط لتسجيل المنتجات التي تصفحها المستخدمون بحيث يمكن مقارنتها في أي وقت.
بالطبع، التطبيقات المذكورة أعلاه ليست سوى بعض التطبيقات التي يمكن لملفات تعريف الارتباط إكمالها، وهناك المزيد من الوظائف التي تتطلب متغيرات عامة. تركز عيوب ملفات تعريف الارتباط بشكل أساسي على الأمان وحماية الخصوصية. تتضمن بشكل أساسي الفئات التالية:
1. قد يتم تعطيل ملفات تعريف الارتباط. عندما يولي المستخدم اهتمامًا كبيرًا بحماية الخصوصية الشخصية، فمن المحتمل أن يقوم بتعطيل وظيفة ملفات تعريف الارتباط في المتصفح.
2. ترتبط ملفات تعريف الارتباط بالمتصفح. وهذا يعني أنه حتى إذا قمت بزيارة نفس الصفحة، فلا يمكن الوصول إلى ملفات تعريف الارتباط المحفوظة بواسطة متصفحات مختلفة من بعضها البعض.
3. قد يتم حذف ملفات تعريف الارتباط. نظرًا لأن كل ملف تعريف ارتباط عبارة عن ملف موجود على القرص الصلب، فمن المحتمل أن يقوم المستخدم بحذفه.
4. أمان ملفات تعريف الارتباط ليس عاليًا بدرجة كافية. يتم تسجيل جميع ملفات تعريف الارتباط في ملفات على شكل نص عادي، لذلك إذا كنت تريد حفظ اسم المستخدم وكلمة المرور والمعلومات الأخرى، فمن الأفضل تشفيرها مسبقًا.
قم بتعيين ملفات تعريف الارتباط.
كل ملف تعريف ارتباط هو زوج من الاسم/القيمة
. يمكنك تعيين السلسلة التالية إلى document.cookie:
document.cookie=”userId=828″;
تقسيم مفصول بمسافات (;)، على سبيل المثال:
document.cookie=”userId=828; userName=hulk”;
لا يمكن استخدام الفواصل المنقوطة (;) والفواصل (,) وعلامات المساواة (=) في أسماء ملفات تعريف الارتباط أو قيمها. والمساحات. من السهل القيام بذلك باسم ملف تعريف الارتباط، لكن القيمة التي سيتم حفظها غير محددة. كيفية تخزين هذه القيم؟ تتمثل الطريقة في استخدام وظيفة الهروب () للتشفير، والتي يمكن أن تستخدم التمثيل السداسي العشري لبعض الرموز الخاصة، على سبيل المثال، سيتم ترميز المسافات كـ "20٪"، والتي يمكن تخزينها في قيمة ملف تعريف الارتباط، ويمكن استخدام هذا الحل. تجنب أيضًا ظهور أحرف صينية مشوهة. على سبيل المثال:
document.cookie="str="+escape("I love ajax");
يعادل:
document.cookie="str=I%20love%20ajax";
عند استخدام تشفير escape()، يكون مطلوبًا بعد الاسترداد القيمة استخدم unescape() لفك التشفير للحصول على قيمة ملف تعريف الارتباط الأصلية، والتي تم تقديمها من قبل.
على الرغم من أن document.cookie يبدو كخاصية ويمكن تخصيص قيم مختلفة له. لكنه يختلف عن السمات العامة. تغيير مهمته لا يعني فقدان القيمة الأصلية. على سبيل المثال، تنفيذ العبارتين التاليتين بشكل مستمر:
document.cookie
=”
userId=828″;
هذه المرة، سيحتفظ المتصفح بملفي تعريف ارتباط، وهما userId وuserName، لذا فإن تعيين قيمة لـ document.cookie يشبه إلى حد كبير تنفيذ عبارة مثل هذا:
document.addCookie("userId=828");
document.addCookie("userName= hulk" );
في الواقع، يقوم المتصفح بتعيين ملفات تعريف الارتباط بهذه الطريقة. إذا كنت تريد تغيير قيمة ملف تعريف الارتباط، فأنت تحتاج فقط إلى إعادة تعيينه، على سبيل المثال:
document.cookie="userId=929";
سيؤدي هذا إلى تغيير ملف تعريف الارتباط المسمى userId تم تعيين القيمة على 929.
الحصول على قيمة ملف تعريف الارتباط
فيما يلي وصف لكيفية الحصول على قيمة ملف تعريف الارتباط. يمكن الحصول على قيمة ملف تعريف الارتباط مباشرةً من document.cookie:
var strCookie=document.cookie;
سيؤدي هذا إلى الحصول على سلسلة تتكون من أزواج اسم/قيمة متعددة مفصولة بفواصل منقوطة. تتضمن أزواج الاسم/القيمة هذه الأسماء الموجودة أسفل اسم المجال. جميع ملفات تعريف الارتباط.
في التطوير الفعلي، غالبًا ما تحتاج ملفات تعريف الارتباط إلى حفظها لفترة طويلة، مثل حفظ حالة تسجيل دخول المستخدم. ويمكن تحقيق ذلك باستخدام الخيارات التالية:
document.cookie=”userId=828 تنتهي صلاحيته=GMT_String”;
من بينها، GMT_String عبارة عن سلسلة زمنية يتم التعبير عنها بتنسيق GMT. يقوم هذا البيان بتعيين ملف تعريف الارتباط userId على وقت انتهاء الصلاحية الذي يمثله GMT_String، وبعد هذا الوقت، سيختفي ملف تعريف الارتباط ويصبح غير قابل للوصول.
حذف ملفات تعريف الارتباط
لحذف ملف تعريف الارتباط، يمكنك ضبط وقت انتهاء صلاحيته على وقت في الماضي.
حدد المسار الذي يمكن الوصول إلى ملف تعريف الارتباط فيه بشكل افتراضي، إذا تم إنشاء ملف تعريف الارتباط على إحدى الصفحات، فيمكن الوصول إلى ملف تعريف الارتباط أيضًا من خلال الصفحات الأخرى في الدليل حيث توجد الصفحة. إذا كانت هناك أدلة فرعية ضمن هذا الدليل، فيمكنك أيضًا الوصول إليها في الدلائل الفرعية. على سبيل المثال، يمكن الوصول إلى ملف تعريف الارتباط الذي تم إنشاؤه في www.xxxx.com/html/a.html عن طريق www.xxxx.com/html/b.html أو www.xxx.com/html/some/c.html ، ولكن لا يمكن الوصول إليه يمكن الوصول إليه عن طريق www.xxxx.com/d.html .
للتحكم في الدليل الذي يمكن لملفات تعريف الارتباط الوصول إليه، تحتاج إلى استخدام معلمة المسار لتعيين ملفات تعريف الارتباط. يكون بناء الجملة كما يلي:
document.cookie='name=value; path=cookieDir';
حيث يمثل cookieDir الدليل الذي يمكن لملفات تعريف الارتباط الوصول إليه يمكن الوصول إليها. على سبيل المثال:
document.cookie="userId=320; path=/shop";
يعني أنه لا يمكن استخدام ملف تعريف الارتباط الحالي إلا في دليل المتجر.
إذا كنت تريد إتاحة ملفات تعريف الارتباط في جميع أنحاء موقع الويب، فيمكنك تحديد cookie_dir كدليل جذر، على سبيل المثال:
document.cookie="userId=320; path=/";
يشبه
تحديد اسم المضيف الذي يمكنه الوصول إلى ملف تعريف الارتباط
يشير اسم المضيف إلى نفس المضيفين المختلفين ضمن نطاق واحد، على سبيل المثال:
www.google.com وgmail.google.com اسمان مضيفان مختلفان. افتراضيًا، لا يمكن الوصول إلى ملفات تعريف الارتباط التي تم إنشاؤها على مضيف واحد على مضيف آخر، ولكن يمكن التحكم فيها من خلال معلمة المجال. تنسيق بناء الجملة هو:
document.cookie="name=value; domain=cookieDomain" "؛
مع أخذ Google كمثال. ، لتحقيق الوصول عبر المضيف، يمكنك كتابة:
document.cookie="name=value;domain=.google.com";
وبهذه الطريقة، يمكن لجميع المضيفين ضمن google.com الوصول إلى ملف تعريف الارتباط.
مثال شامل: إنشاء وظيفة عامة للتعامل مع ملفات تعريف الارتباط
عملية معالجة ملفات تعريف الارتباط معقدة نسبيًا ولها أوجه تشابه معينة. ولذلك، يمكن تحديد عدة وظائف لإكمال العمليات المشتركة لملفات تعريف الارتباط، وبالتالي تحقيق إعادة استخدام التعليمات البرمجية. عمليات ملفات تعريف الارتباط شائعة الاستخدام وتطبيقات وظائفها مدرجة أدناه.
1. تعيين ملفات تعريف الارتباط
وظيفة SetCookie (الاسم، القيمة، انتهاء الصلاحية، المسار، المجال، آمن)
{
فار expDays = انتهاء الصلاحية*24*60*60*1000;
var expDate = new Date();
expDate.setTime(expDate.getTime()+expDays);
var expString = ((expires==null) ? “” : (”;expires="+expDate.toGMTString()))
var pathString = ((path==null) ? "" : (";path="+path))
var domainString = ((domain==null) ? “” : (”;domain==+domain))
var SecureString = ((secure==true) ? “;secure” : “” )
document.cookie = name + "=" + escape(value) + expString + pathString + domainString + SecureString؛
}
2. احصل على قيمة ملف تعريف الارتباط للاسم المحدد:
وظيفة GetCookie (الاسم)
{
نتيجة فار = فارغة؛
var myCookie = document.cookie + ";";
var searchName = name + "=";
var startOfCookie = myCookie.indexOf(searchName);
var endOfCookie;
إذا (startOfCookie != -1)
{
startOfCookie += searchName. length;
endOfCookie = myCookie.indexOf(";",startOfCookie);
النتيجة = unescape(myCookie.substring(startOfCookie, endOfCookie));
}
نتيجة الإرجاع؛
}
3. احذف ملف تعريف الارتباط بالاسم المحدد:
وظيفة ClearCookie (الاسم)
{
فار ThreeDays=3*24*60*60*1000;
var expDate = new Date();
expDate.setTime(expDate.getTime()-ThreeDays);
document.cookie=name+”=;expires=”+expDate.toGMTString();
}