Saya harus kehilangan beberapa hal mendasar tentang cookie. Di localhost, ketika saya menetapkan cookie di sisi server dan menentukan domain secara eksplisit sebagai localhost (atau .localhost). cookie sepertinya tidak diterima oleh beberapa browser.
Firefox 3.5: Saya memeriksa permintaan HTTP di Firebug. Apa yang saya lihat adalah:
Set-Cookie:
name=value;
domain=localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
atau (ketika saya mengatur domain ke .localhost):
Set-Cookie:
name=value;
domain=.localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
Dalam kedua kasus, cookie tidak disimpan.
IE8: Saya tidak menggunakan alat tambahan, tetapi cookie sepertinya tidak disimpan juga, karena tidak dikirim kembali dalam permintaan berikutnya.
Opera 9.64: Baik localhost dan .localhost berfungsi , tetapi ketika saya memeriksa daftar cookie di Preferensi, domain diatur ke localhost.local meskipun terdaftar di bawah localhost (dalam pengelompokan daftar).
Safari 4: Baik localhost dan .localhost berfungsi , tetapi mereka selalu terdaftar sebagai .localhost di Preferensi. Di sisi lain, cookie tanpa domain eksplisit, itu ditampilkan sebagai hanya localhost (tanpa titik).
Apa masalah dengan localhost? Karena sejumlah inkonsistensi, harus ada beberapa aturan khusus yang melibatkan localhost. Juga, tidak sepenuhnya jelas bagi saya mengapa domain harus diawali dengan titik? RFC 2109 secara eksplisit menyatakan bahwa:
Nilai untuk atribut Domain tidak mengandung titik yang disematkan atau tidak dimulai dengan titik.
Mengapa? Dokumen tersebut menunjukkan bahwa ia harus melakukan sesuatu dengan keamanan. Saya harus mengakui bahwa saya belum membaca keseluruhan spesifikasi (mungkin melakukannya nanti), tetapi kedengarannya agak aneh. Berdasarkan ini, pengaturan cookie di localhost tidak mungkin.