تقسيم وإعادة تجميع سلسلة كبيرة في ملفات تعريف الارتباط باستخدام ASP.NET

StackOverflow https://stackoverflow.com/questions/4608386

سؤال

لديّ سلسلة كبيرة أريد حفظها في ملف تعريف الارتباط ، ومع ذلك لا أعرف ما هي أفضل الممارسات بالنسبة إلى طول سلسلة Max لكل ملف تعريف ارتباط ، وعدد Max Cookie.

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

(Microsoft ADFs وربما يقوم Siteminder بعمل هذه التقنية لذلك سأكون مهتمًا بماهية تنفيذها)

هل كانت مفيدة؟

المحلول

ملفات تعريف الارتباط هي شيء يتعامل مع المتصفحات ، لذلك لكل متصفح حدود مختلفة.

يمكن أن يساعد تقسيم ملف تعريف الارتباط فقط مؤقتًا لأنه يوجد أيضًا حد لإجمالي بيانات ملفات تعريف الارتباط لكل موقع ، ولكن أيضًا تضيف حمولة نقل البيانات في كل صفحة

حدود كل متصفح لكل ملف تعريف ارتباط:
Internet Explorer Handle Max Cookie من حوالي 3904 بايت
Mozilla Firefox Handle Max Cookie من حوالي 3136 بايت

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

الآن كل من Netscape و Microsoft لديهما تدابير في مكانها تحد من عدد ملفات تعريف الارتباط على قيود RFC 2109 إجمالي ملفات تعريف الارتباط إلى 300 المرجع: http://www.cookiecentral.com/faq/#2.5
يتم ذلك لأسباب عديدة ، أحدها هو القرصنة ، وتصوير موقع يذهب وتحميل مقطع فيديو كامل على ملفات تعريف الارتباط :) وامتلئ قرصك الصلب معه ...

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

كيفية إجراء اختباراتك لملف تعريف الارتباط ، يمكنك عمل رمز من هذا القبيل.

if(Request.Cookies["cookieTest"] == null)
    Request.Cookies["cookieTest"].Value = "more text into cookie";
else
    Request.Cookies["cookieTest"].Value += "more text into cookie";

// check now the size
Responce.Write(Request.Cookies["cookieTest"].Value.Length);

تُظهر تجربتي العديد من المشكلات العشوائية غير المتوقعة عندما تحاول استخدام بيانات كبيرة غير خاضعة للرقابة على ملفات تعريف الارتباط. لقد سمعت عدة مرات الدعم يقول: امسح ملفات تعريف الارتباط الخاصة بك وحاول مرة أخرى :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top