ฉันต้องคิดถึงบางสิ่งพื้นฐานเกี่ยวกับคุกกี้ บน localhost เมื่อฉันตั้งค่าคุกกี้บนฝั่งเซิร์ฟเวอร์และระบุโดเมนอย่างชัดเจนว่าเป็น localhost (หรือ. localhost) ดูเหมือนจะไม่ยอมรับคุกกี้จากเบราว์เซอร์บางตัว
Firefox 3.5:ฉันตรวจสอบคำขอ HTTP ใน Firebug สิ่งที่ฉันเห็นคือ:
Set-Cookie:
name=value;
domain=localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
หรือ (เมื่อฉันตั้งค่าโดเมนเป็น. localhost):
Set-Cookie:
name=value;
domain=.localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
ไม่ว่าในกรณีใดคุกกี้จะไม่ถูกจัดเก็บ
IE8:ฉันไม่ได้ใช้เครื่องมือพิเศษใด ๆ แต่ดูเหมือนว่าคุกกี้จะไม่ถูกเก็บไว้เช่นกันเพราะมันจะไม่ถูกส่งกลับในการร้องขอครั้งต่อไป
Opera 9.64:ทั้ง localhost และ. localhost ทำงานแต่เมื่อฉันตรวจสอบรายชื่อของคุกกี้ในการตั้งค่าโดเมนจะถูกตั้งเป็น localhost.local แม้ว่าจะอยู่ในรายการภายใต้ localhost (ในการจัดกลุ่มรายการ)
Safari 4:ทั้ง localhost และ. localhost ทำงานแต่จะอยู่ในรายการเป็น. localhost ใน Preferences ในทางกลับกันคุกกี้ที่ไม่มีโดเมนที่ชัดเจนจะถูกแสดงเป็นเพียง localhost (ไม่มีจุด)
localhost มีปัญหาอะไร? เนื่องจากความไม่สอดคล้องกันจำนวนมากจึงต้องมีกฎพิเศษที่เกี่ยวข้องกับ localhost นอกจากนี้ยังไม่ชัดเจนสำหรับฉันว่าทำไมโดเมนต้องนำหน้าด้วยจุด? RFC 2109 ระบุอย่างชัดเจนว่า:
ค่าสำหรับแอตทริบิวต์ของโดเมนไม่มีจุดฝังตัวหรือไม่เริ่มต้นด้วยจุด
ทำไม? เอกสารระบุว่าต้องทำอะไรบางอย่างด้วยความปลอดภัย ฉันต้องยอมรับว่าฉันยังไม่ได้อ่านข้อมูลจำเพาะทั้งหมด (อาจทำในภายหลัง) แต่มันฟังดูแปลก ๆ จากนี้การตั้งค่าคุกกี้บน localhost จะเป็นไปไม่ได้