2010-05-21 15 views
8

Bir HTTP Set-Cookie yönergesi yalnızca bir çerez alabilir, doğru mu? Yani, bir tek name=value çifti?Tek bir Set-Cookie ile birden fazla çerez ayarlamak mümkün mü?

+0

Yönergeyi söylediğinden beri, htaccess veya bir şeyden mi bahsediyoruz? Öyleyse, etiketler yeniden tanımlanmalıdır. Javascript kullanarak, ancak istediğiniz birçok kurabiyi ayarlayabilirsiniz. –

cevap

18

Netscape'in orijinal tanımlama bilgisi (bkz. this cached version), birden çok çerez bildiriminin listelenmesi hakkında hiçbir şey söylemez.

Ancak Set çerez RFC 2109 ile tanımlanan itibariyle tanımlama bildiriminin bir virgülle ayrılmış listesini sağlar

:

gayri, Set-çerez yanıt başlığı bir takiben-çerez ayarlama belirteç :, ihtiva Bir veya daha fazla çerezin virgülle ayrılmış listesi. Her çerez bir NAME = VALUE çifti ile başlar, ardından sıfır veya daha fazla noktalı virgülle ayrılmış öznitelik değeri çifti gelir. RFC 2965 ile tanımlanan

aynı Ayar Cookie2 için geçerlidir:

gayri Set Cookie2 yanıt başlığı virgülle ayrılmış listesi takip Cookie2 ayarlama belirteç :, ihtiva Bir veya daha fazla çerez. Her çerez bir NAME = VALUE çifti ile başlar, ardından sıfır veya daha fazla noktalı virgülle ayrılmış öznitelik değeri çifti gelir.

Ancak çoğu kullanıcı arayüzleri hala Netscape'in orijinal şartname takip beri, ben yerine sadece kendi Set-Cookie başlık alanı ile her çerez ilan etmek öneririm.

Bu son RFC 6265 yansıtır aynı zamanda ne:

Menşei sunucuları tek başlık alanı içine birden Set-Cookie başlığı alanlarını kat ETMEMELİDİR. HTTP üstbilgileri alanlarını (örneğin, [RFC2616] 'da tanımlandığı gibi) katlamak için kullanılan olağan mekanizma, Set-Cookie başlık alanının semantik değerini değiştirebilir, çünkü% x2C (",") karakteri,Set-Cookie tarafından kullanılır. Böyle bir katlama ile çakışan yolu.

+0

Son belirtim, gördüğüm kadarıyla tek bir Set-Çerez başlığında birkaç çerez hakkında hiçbir şey söylemeyen RFC6265'dir: http://www.rfc-editor.org/rfc/rfc6265.txt – neu242

+0

I Birden çok çerez göndermeye çalıştığınızda Google Chrome'un alışılmadık şekilde ayrıştırıldığını doğrulayabilir, bu nedenle kesinlikle tavsiye edilmez. Çerez ayırıcı olarak "," karakterinin gerçekten ayrıştırılması imkansız hale geldiğinden dolayı, çerezin RFC 2109'a göre nasıl ayrıştırılacağı konusunda beni çok şaşırttı. Yani, basitçe söylemek gerekirse, onu sadece ayrıştırmazsınız. –

İlgili konular