في مواصفات HTTP، ما هي السلسلة التي تفصل ملفات تعريف الارتباط؟
-
27-10-2019 - |
سؤال
فاصلة منقوطة ;
, ، ال Cookie:
سلسلة أو بعض سلسلة أخرى؟
المحلول
فحص ملفات تعريف الارتباط في طلب HTTP
ال Cookie:
يحتوي الرأس على بناء الجملة التالي:
Cookie: <Name> = <Value> { ; <Name> = <Value> }
ومن ثم يتم فصل ملفات تعريف الارتباط الفردية بفاصلة منقوطة.
تعيين ملفات تعريف الارتباط في استجابة HTTP
من ناحية أخرى، عند تعيين ملف تعريف الارتباط في الاستجابة، هناك ملف تعريف ارتباط واحد لكل ملف Set-Cookie:
رأس:
Set-Cookie: <Name> = <Value> [ ; expires = <Date>] [ ; path = <Path> ] [ ; domain = <Domain> ] // etc…
لتعيين ملفات تعريف ارتباط متعددة Set-Cookie
يتم تكرار الرأس في استجابة HTTP.
ملحوظات:
- الق نظرة هنا للحصول على برنامج تعليمي مع الأمثلة، و آر إف سي 6265 آلية إدارة حالة HTTP للحصول على مرجع معياري يوضح التفاصيل الكاملة لبناء الجملة.
- الآن عفا عليها الزمن آر إف سي 2965 تعريف زوج بديل من الرؤوس
Cookie2
وSet-Cookie2
التي تم التخلي عنها. - الإصدارات القديمة من آلية إدارة حالة HTTP (آر إف سي 2109 و آر إف سي 2965) قدمت وسيلة لطي متعددة
Set-Cookie
(أوSet-Cookie2
) رؤوس في واحد.ومع ذلك، لا ينصح بهذا الطي من قبل الأحدث آر إف سي 6265 المواصفات.
نصائح أخرى
الجواب هو فاصلة ,
لافتة.
في القسم 4.2.2 من آر إف سي 2109 هناك هذه المواصفات Set-Cookie
header
set-cookie = "Set-Cookie:" cookies
cookies = 1#cookie
مع البيان التالي بشكل غير رسمي، يشتمل رأس استجابة Set-Cookie على الرمز المميز Set-Cookie:، متبوعًا بقائمة مفصولة بفواصل تضم ملف تعريف ارتباط واحد أو أكثر. (المعنى الرسمي ل #
في التدوين أعلاه تم تعريفه في آر إف سي 733 في قسم أ.الاتفاقيات التدوينية, ، النقطة 5
يتم تعريف البناء "#"، على غرار "*"، على النحو التالي:
<l>#<m>element
تشير على الأقل
<l>
وعلى الأكثر<m>
العناصر ، كل مفصولة بفواصل أو أكثر ("،").
نعم، لقد تم إهمال RFC 2109 بواسطة RFC 2965، والذي بدوره تم إلغاؤه بواسطة آر إف سي 6265.
لا، لا يغير أي شيء في هذا السياق
- تدعم معظم خوادم وعملاء HTTP الحاليين RFC 2109
- RFC 6265 يفعل لا حرم
Set-Cookie
قابلة للطي