为什么Tornado set_cookie函数总是为cookie的值添加一对引号?

时间:2013-03-18 12:18:25

标签: python web tornado

例如,在Handler中,我写道:

self.set_cookie('name', "value", domain=my_domain)

然后我在浏览器(谷歌浏览器)中获得此cookie的价值,我总是得到"value"而不是value

如何在没有引号的情况下设置Cookie?

1 个答案:

答案 0 :(得分:2)

作为RFC6265状态,cookie值可以是双引号或不引用(参见下面语法定义的BNF部分),并且两者在语法上都是有效的,因此这是必须解决的问题客户端。

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
token             = <token, defined in [RFC2616], Section 2.2>

Cookie版本1指出对包含空格的值使用双引号cookie值,而Cookie版本0使用带编码字符的不带引号值(空格为%20),并且此行为(cookie处理)可能因浏览器而异。 / p>