HTTP Cookie名称是否包含短划线? 任何可靠的参考?
我已尝试使用Chrome,但它很好,但我担心其他浏览器可能不允许,因为在PHP参考http://php.net/manual/en/function.session-name.php中说:
name:
The session name references the name of the session,
which is used in cookies and URLs (e.g. PHPSESSID).
***It should contain only alphanumeric characters;***
答案 0 :(得分:8)
在定义RFC6265的说法中,cookie名称被定义为“标记”。令牌在RFC2616第2.2节中定义。这是摘录:
token = 1*<any CHAR except CTLs or separators>
separators = "(" | ")" | "<" | ">" | "@"
| "," | ";" | ":" | "\" | <">
| "/" | "[" | "]" | "?" | "="
| "{" | "}" | SP | HT
如您所见,短划线(“ - ”)没有出现在列表中,所以没关系。
答案 1 :(得分:2)
规范说是的,我的经验说没有。
在Ubuntu上使用Chromium,我今天在cookies中出现了一个非常奇怪的连字符问题,这让我想到了这个问题。使用连字符导致cookie在几微秒内到期(通过在页面加载中多次将document.cookie转储到控制台来证明)。
将大部分头发撕掉之后,我现在可以清楚地看到了
tibbed-WP_ID_313=true; expires=Wed, 03 Dec 2014 20:28:26 GMT
(两天之后)持续大约一半的页面加载,而这些变种
tibbedWP_ID_313=true;
tibbed_WP_ID_313=true;
tibbed:WP_ID_313=true;
所有人都应该坚持下去。
此代码在过去几个月一直运作良好。去搞清楚。从现在开始,我将避免使用连字符(破折号)。