逗号是Cookie值中的有效字符 [英] Is comma a valid character in cookie-value
问题描述
在某些网络服务器中,值为逗号的Cookie将被拆分为两个Cookie(一个为空值)。例如,foo = bar,goo
将被视为foo = bar; goo =
。这是根据RFC吗?
In some web server, cookie with a comma in value will be split into two cookie (one with empty value). For example, "foo=bar,goo"
will be treated just like "foo=bar;goo="
. Is this right according to RFC?
我发现这个RFC文档,但不知道它的意思。
I find this RFC document but don't know exactly what it means.
cookie-pair = cookie-name "=" cookie-value
cookie-name = token
cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )
cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E
; US-ASCII characters excluding CTLs,
; whitespace DQUOTE, comma, semicolon,
; and backslash
推荐答案
cookie-pair = cookie-name "=" cookie-value
cookie-name = token
cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )
cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E
; US-ASCII characters excluding CTLs,
; whitespace DQUOTE, comma, semicolon,
; and backslash
这些关键字是什么:cookie对,cookie名称,cookie值,cookie-octet?
cookie-valule
$ c> = 。
cookie-valule
is the right-side part of =
.
cookie-octet
双引号或无。请参阅:
cookie-octet
is the real value, enclosed in double quotes or nothing. See:
key="value"
或
key=value
当您放入,
(或;
)看到会发生什么:
When you put in a ,
(or ;
) see what happens:
key="value,",key2="value2"
或
key=value,,key2=value2
所以,你的假设不太正确,不能使用逗号或分号内部的值。
So, your assumption is not quite correct and you must not use comma or semicolon inside the value.
这篇关于逗号是Cookie值中的有效字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!