逗号是Cookie值中的有效字符 [英] Is comma a valid character in cookie-value

查看:574
本文介绍了逗号是Cookie值中的有效字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在某些网络服务器中,值为逗号的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

RFC 6265

推荐答案

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆